我假设我的 shell 脚本的参数将是 ./x.sh subject N file1 file2 fileN
所以我将 argv
从 3 拼接到最后 candidates=${@:3}
现在我想检查候选人的长度是否与给定的 N
相同,我正在尝试使用 echo $((${#candidates[@]}))
其中始终返回1
。
我可以echo "$#-2"| bc
但是,我不应该能够获得数组大小吗?
我可以使用bc
进行整数比较。但我必须知道我没有正确得到的“候选数组”的大小。
最佳答案
分配候选者
的方式不是创建数组。要使其成为数组,请执行以下操作:
candidates=(${@:3})
在 bash 中,您可以使用 ${#candidates[*]}
获取数组中元素的数量。要检查它是否等于 $2
,只需执行以下操作:
[[ ${#candidates[*]} == "$2" ]]
关于arrays - shell脚本数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882859/