2

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

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

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

我可以bc用来做整数比较。但我必须知道我没有得到正确的`candidates 数组的大小。

4

1 回答 1

2

您分配的方式candidates不是制作数组。要使其成为数组,请执行以下操作:

candidates=(${@:3})

在 bash 中,您可以使用${#candidates[*]}. 要检查是否等于$2,只需执行以下操作:

[[ ${#candidates[*]} == "$2" ]]
于 2012-12-14T17:01:37.567 回答