$#construct在bash中意味着什么?

参见英文答案 > 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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...