首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$#和${#@}之间的差异

$#和${#@}之间的差异
EN

Stack Overflow用户
提问于 2015-05-26 21:15:44
回答 1查看 777关注 0票数 5

我查看了下面的代码,发现$#和${#@}都打印了相同的值。谁能告诉我这两者有什么区别吗?

代码语言:javascript
复制
# length.sh

E_NO_ARGS=65

if [ $# -eq 0 ]  # Must have command-line args to demo script.
then
  echo "Please invoke this script with one or more command-line arguments."
  exit $E_NO_ARGS
fi  

var01=abcdEFGH28ij
echo "var01 = ${var01}"
echo "Length of var01 = ${#var01}"
# Now, let's try embedding a space.
var02="abcd EFGH28ij"
echo "var02 = ${var02}"
echo "Length of var02 = ${#var02}"

echo "Number of command-line arguments passed to script = ${#@}"
echo "Number of command-line arguments passed to script = $#"

exit 0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 21:25:49

每页手册(3.5.3壳体参数扩展):

${#parameter} 参数长度替换参数值的字符长度。如果参数是@__,或*,则替换的值是位置参数的数目。如果参数是由*或@订阅的数组名称,则替换的值是数组中的元素数。

因此,${#@}只是一个特例,因为$#是表示位置参数数的常用方法。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30469040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档