外壳脚本数组长度



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

现在我想检查候选人的长度是否与我尝试使用echo $((${#candidates[@]})) N给定的长度相同,它总是返回1.

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

我可以使用bc进行整数比较。 但我必须知道我没有正确获得的"候选数组"的大小。

你分配candidates的方式不是创建一个数组。 要使其成为数组,请执行以下操作:

candidates=(${@:3})

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

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

最新更新