我假设我的shell脚本的参数是./x.sh subject N file1 file2 fileN
所以我正在拼接argv
从3到candidates=${@:3}
现在我想检查一下候选人的长度是否与给定N
的{{1}}相同echo $((${#candidates[@]}))
总是返回1
。
我可以做echo "$#-2" | bc
但是,我不应该能够获得数组大小吗?
我可以使用bc
进行整数比较。但我要知道`候选阵列的大小,我没有得到正确的。
答案 0 :(得分:2)
您分配candidates
的方式不是制作数组。要使它成为一个数组,请执行:
candidates=(${@:3})
在bash中,您可以使用${#candidates[*]}
获取数组中的元素数量。要检查它是否等于$2
,请执行以下操作:
[[ ${#candidates[*]} == "$2" ]]