bash - Bash 中的 "$#"特殊参数是什么意思?

标签 bash shell if-statement parameters

我遇到了代码

if [ $# -eq 1  ]; then
   echo "usage: Phar ~/flashmem ~/archive"
   exit
fi

我以前从未遇到过 [ $# -eq 1 ]; 我似乎找不到意义。它有什么作用?

最佳答案

$# 返回作为参数传递的参数的数量。

#!/bin/bash
echo $#

现在

./testess.sh test1 test2 test3

这将返回 3

./testess.sh test1 test2 test3 test4 test5

这将返回 5

因此在您的代码中,如果 $# 等于第一(只传递了一个参数),则执行 echo 命令。

关于bash - Bash 中的 "$#"特殊参数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254838/

相关文章:

bash - AWK 寻找一种方法来打印包含逗号分隔字符串中的单词的行

git - 如何管道git clone

linux - 如何使用 awk 将文件的某个字段更改为大写?

windows - [ : too many arguments on Cygwin Shell script

linux - 为什么部分脚本无法在crontab中执行

php - 为什么我的 if 条件会跳过字符?

bash - 从终端输出中删除发送命令,同时保留所需的输出

linux - 如何存储已编译的脚本名称并执行它?(GCC)

vb.net - VB.NET 中的囚徒困境 - 与 "Else If"相关的编译错误

javascript - 循环遍历数组时需要有关条件的帮助