J'ai un problème avec la boucle for dans bash. Par exemple: j'ai un tableau ("etc" "bin" "var")
. Et j'itère sur ce tableau. Mais dans la boucle, j'aimerais ajouter une valeur au tableau. Par exemple
array=("etc" "bin" "var")
for i in "${array[@]}"
do
echo $i
done
Cela s'affiche etc
bin
var
(bien sûr sur des lignes distinctes). 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 distinctes).
Ça ne marche pas. Comment puis-je le faire?
Réponses:
Il va ajouter « sbin » 3 fois comme il se doit, mais il ne sera pas sur la nouvelle itérer ajoutée « sbin » s dans la même boucle.
Après le 2ème exemple:
la source
for
boucles. Effectuez d'abord vos ajouts, puis parcourez le résultat.array+=(sbin); for i in ...
Cela itérera sur votre liste, clouera
sbin
la fin de ladite liste de manière conditionnelle et l'inclurasbin
dans le contenu itérable.la source