私は数多くのアレイを持ち、それぞれを取って長さをチェックしたいと思っています。bashで配列を反復する方法
#!/bin/bash
arr1=(1 2 3 4)
arr2=(foo)
arrN=(1 2 3 4 a b c d)
for arr in $arr1 $arr2 $arrN
do
echo "${#arr[@]}" # $arr1 must be 4, right? Wrong.
if [ ${#arr[@]} == 1 ]
then echo "short"
elif [ ${#arr[@]} >= 4 ]
then echo "long"
else echo "so so"
fi
done
しかし、私は期待していない出力を得ています。
[email protected]:~$ ./test.sh
1
short
1
short
1
short
私はなぜそれがそのように働いているのか分かりませんが、それを修正する方法はわかりません。
、 '$の編曲を== $ {arr1 [0]} ' しかし、私は' $ arr1'を '$ arr'に入れますか? – kusayu