我假设我的 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" ]]