什么是" $#" bash中的特殊参数意味着什么?

时间:2013-11-27 23:05:43

标签: bash shell if-statement parameters

我遇到了代码

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

我从未见过[$#-eq 1];之前和我似乎无法找到意义

2 个答案:

答案 0 :(得分:6)

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

#!/bin/bash
echo $#

现在

./testess.sh test1 test2 test3

此返回3

./testess.sh test1 test2 test3 test4 test5

此返回5

所以在你的代码中如果“$#”等于第一个(只传递一个参数),执行echo命令

答案 1 :(得分:1)

Expands to the number of positional parameters in decimal.

(从man bash复制,Special Parameters下)。