我知道可以通过以下方式获取 bash 中数组的长度${#arrayname[@]}
.
我的问题是:这只是我必须记住的东西,还是可以将此语法分解为可以理解的部分?例如,什么是@
符号意味着人们期望在哪里找到索引?为什么#
?
#
在变量引用的开头意味着获取变量值的长度。对于普通变量,这意味着它的字符长度。#
是“数字”符号,因此您可以记住它的意思是“变量中的事物的数量”。
@
or *
在数组中索引意味着使用整个数组,而不是特定元素,并且它不返回字符数,而是返回数组元素的数量。*
在许多情况下用作通配符,因此这应该很容易记住。还,$*
and $@
用于表示 shell 脚本的所有参数,因此与所有数组元素的相似之处应该是显而易见的。
你不能只写${#arrayname}
因为当你使用没有下标的数组变量时,它相当于元素0
数组的。所以${#arrayname}
是相同的${#arrayname[0]}
,这是数组第一个元素中的字符数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)