2

シェルスクリプトへの引数は次のようになると思いますので、3から最後まで./x.sh subject N file1 file2 fileN スプライシングしていますargvcandidates=${@:3}

N今、私は候補者の長さが私が試してecho $((${#candidates[@]}))いるものと同じであるかどうかを確認したいと思い1ます。

できますecho "$#-2" | bcが、配列サイズを取得できないはずですか?

bc整数比較を行うために使用できます。しかし、適切に取得されていない`候補配列のサイズを知る必要があります。

4

1 に答える 1

2

割り当てる方法candidatesは、配列を作成することではありません。配列にするには、次のようにします。

candidates=(${@:3})

bashでは、。を使用して配列内の要素の数を取得できます${#candidates[*]}。それがに等しいかどうかを確認するには$2、次のようにします。

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