Bashのforループに問題があります。例:配列があります("etc" "bin" "var")
。この配列を繰り返します。しかし、ループ内で配列にいくつかの値を追加したいと思います。例えば
array=("etc" "bin" "var")
for i in "${array[@]}"
do
echo $i
done
etc
bin
var
これは(もちろん別々の行に)表示されます。次のように追加するとdo
:
array=("etc" "bin" "var")
for i in "${array[@]}"
do
array+=("sbin")
echo $i
done
私はほしいと思う: (etc
bin
var
sbin
もちろん別のラインで)。
これはうまくいきません。どうすればいいですか?
ベストアンサー1
それ〜する「sbin」を3回追加しますが、同じループで新しく追加された「sbin」を繰り返しません。
2番目の例以降:
echo "${array[@]}"
#=> etc bin var sbin sbin sbin