配列ループ内の配列に要素を追加します。

配列ループ内の配列に要素を追加します。

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

おすすめ記事