bash 中的 $# 结构是啥意思? [复制]

Posted

技术标签:

【中文标题】bash 中的 $# 结构是啥意思? [复制]【英文标题】:What does the $# construct mean in bash? [duplicate]bash 中的 $# 结构是什么意思? [复制] 【发布时间】:2011-04-04 21:01:31 【问题描述】:

我明白了

foo() 
if [[ $# -lt 1 ]]; then
    return 0 
fi

...


使用 $# 进行比较的具体内容是什么?

【问题讨论】:

【参考方案1】:

$# 是传递给脚本的参数数量。有关完整列表,请参阅 bash(1) 手册页的 PARAMETERS 部分的 Special Parameters 小节。

【讨论】:

【参考方案2】:

$# = 传递给函数的参数数量

在您的代码中,如果未使用至少一个参数调用该函数,则该函数将返回 0。

【讨论】:

【参考方案3】:

$# 表示传递给脚本的命令行参数的数量

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

【讨论】:

以上是关于bash 中的 $# 结构是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Bash:2>&1 是啥意思? [复制]

$VARIABLE+x 在 bash 中是啥意思? [复制]

$#、$1 和 $2 是啥意思? [复制]

结构内存内容中的值是啥意思 - C

结构初始化程序中的点 (.) 是啥意思?

AD当中的 架构主机和结构主机和域命名主机是啥意思