shell脚本数组长度

时间:2012-12-14 16:44:44

标签: arrays shell

我假设我的shell脚本的参数是./x.sh subject N file1 file2 fileN 所以我正在拼接argv从3到candidates=${@:3}

现在我想检查一下候选人的长度是否与给定N的{​​{1}}相同echo $((${#candidates[@]}))总是返回1

我可以做echo "$#-2" | bc但是,我不应该能够获得数组大小吗?

我可以使用bc进行整数比较。但我要知道`候选阵列的大小,我没有得到正确的。

1 个答案:

答案 0 :(得分:2)

您分配candidates的方式不是制作数组。要使它成为一个数组,请执行:

candidates=(${@:3})

在bash中,您可以使用${#candidates[*]}获取数组中的元素数量。要检查它是否等于$2,请执行以下操作:

[[ ${#candidates[*]} == "$2" ]]