$#
shell中的意思是什么?
我有这样的代码
if [ $# -eq 0 ]
then
我想了解这是什么$#
意思,但是谷歌搜索对于搜索这类东西来说非常糟糕。
答案1
您可以随时查看 shell 的手册页。man bash
说:
Special Parameters
# Expands to the number of positional parameters in decimal.
因此,shell 脚本可以使用如下代码检查给出了多少个参数:
if [ "$#" -eq 0 ]; then
echo "you did not pass any parameter"
fi
答案2
实际上,
`$` refer to `value of` and
`#` refer to `number of / total number`
就这么在一起
`$#` refer to `The value of the total number of command line arguments passed.`
因此,您可以$#
像您一样检查传递的参数/参数的数量并处理任何意外情况。
同样,我们有
`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`
ETC。
答案3
那是
调用脚本的参数数量
脚本中设置的参数数量
set -- foo bar
(当在函数中使用时)调用函数的参数数量(
set
也可以在那里工作)。
bash 手册页的“特殊参数”部分对此进行了解释。