什么是$#&引用;Bash中的特殊参数意味着什么?
我遇到了密码什么是$#&引用;Bash中的特殊参数意味着什么?,bash,shell,if-statement,parameters,Bash,Shell,If Statement,Parameters,我遇到了密码 if [ $# -eq 1 ]; then echo "usage: Phar ~/flashmem ~/archive" exit fi 我从未遇到过[$#eq 1]之前,我似乎找不到意义。它做什么?它扩展到十进制位置参数的数量。 (复制自manbash,在下)。该$#返回作为参数传递的参数数 #!/bin/bash echo $# 现在 这将返回3 ./testess.sh test1 test2 test3 test4 test5 这将返回5 因此,在代码
if [ $# -eq 1 ]; then
echo "usage: Phar ~/flashmem ~/archive"
exit
fi
我从未遇到过
[$#eq 1]代码>之前,我似乎找不到意义。它做什么?它扩展到十进制位置参数的数量。
(复制自manbash
,在下)。该$#
返回作为参数传递的参数数
#!/bin/bash
echo $#
现在
这将返回3
./testess.sh test1 test2 test3 test4 test5
这将返回5
因此,在代码中,如果$#
等于数字1(只传递了一个参数),则执行echo
命令。不幸的是,编写的方式很难找到类似$#
的内容,因为它在显示时没有$
。所谓的“特殊参数”如$*
,$@
,$#
等等都存在。Google比man(1)bash更积极地剥离符号也没有帮助。@KeithThompson:使用bash手册的版本,$#
的第一次查找显示了所需的位置。;)@MichaelBrux:查看git的历史记录,这种更改(在描述前面添加($)
)是在2014-10-09年的bash-20140926快照(提交30595B7D9)中进行的。这一变化出现在4.3版中。不幸的是,git历史记录并没有显示所做的更改,只显示已过时快照的名称。
./testess.sh test1 test2 test3 test4 test5