Dans une boucle sur un tableau, ajoutez un élément au tableau

J'ai un problème avec pour la boucle dans bash. Par exemple: J'ai un tableau ("etc" "bin" "var") . Et je répète sur ce tableau. Mais dans la boucle, je voudrais append une certaine valeur au tableau. Par exemple

 array=("etc" "bin" "var") for i in "${array[@]}" do echo $i done 

Cela affiche etc bin var (bien sûr sur des lignes séparées). Et si j'ajoute après do comme ça:

 array=("etc" "bin" "var") for i in "${array[@]}" do array+=("sbin") echo $i done 

Je veux: etc bin var sbin (bien sûr sur des lignes séparées).

Cela ne fonctionne pas. Comment puis-je le faire?

Il appenda "sbin" 3 fois comme il se doit, mais il ne sera pas itéré sur les "sbin" nouvellement ajoutés dans la même boucle.

Après le 2ème exemple:

 echo "${array[@]}" #=> etc bin var sbin sbin sbin 
 set etc bin var while [ "$#" -gt 1 ] do [ "$1" = bin ] && set "$@" sbin printf %s\\n "$1" shift;done 

Cela va parcourir votre list, virer sbin à la fin de cette list conditionnellement, et inclure sbin dans le contenu iterable.