参见英文答案 >
What are the special dollar sign shell variables?4个
我知道了
我知道了
foo() { if [[ $# -lt 1 ]]; then return 0 fi ... }
通过使用$#进行比较究竟是什么呢?
$#表示传递给脚本的命令行参数的数量.
sh-3.2$cat a.sh echo $# #print the number of cmd line args. sh-3.2$./a.sh 0 sh-3.2$./a.sh foo 1 sh-3.2$./a.sh foo bar 2 sh-3.2$./a.sh foo bar baz 3
在函数内部使用时(如在您的情况下),它表示传递给函数的参数数量:
sh-3.2$cat a.sh foo() { echo $# #print the number of arguments passed to the function. } foo 1 foo 1 2 foo 1 2 3 sh-3.2$./a.sh 1 2 3