shell中$#是什么意思?

shell中$#是什么意思?

$#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

那是

  1. 调用脚本的参数数量

  2. 脚本中设置的参数数量set -- foo bar

  3. (当在函数中使用时)调用函数的参数数量(set也可以在那里工作)。

bash 手册页的“特殊参数”部分对此进行了解释。

相关内容