Bash boucle for avec une variable liste [Résolu/Fermé]

Signaler
Messages postés
3
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
16 janvier 2012
-
Messages postés
3
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
16 janvier 2012
-
Bonjour,

je cherche a faire une boucle avec une variable:

var="test 01" "test 02" "test 03"
for elem in $var
do
echo $elem
done

ne marche pas mais

for elem in "test 01" "test 02" "test 03"
echo $elem
done

c'est OK

question comment écrire une variable de type liste ?
merci pour votre aide

2 réponses

Messages postés
29258
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 juillet 2020
6 892
Tu peux écrire dans toto.sh :

#!/bin/sh   

list="tata toto titi"   
for element in $list    
do   
        echo "element =" $element   
done


Ensuite, on donne les droits en exécution sur toto.sh et on lance le programme :

chmod a+x toto.sh   
./toto.sh


... ce qui donnera :

element = tata  
element = toto  
element = titi


Bonne chance
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57353 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
16 janvier 2012
1
je suis d'accord avec l'exemple mais mon problème c'est que la chaine est composée des espace exemple: "test 01 etc" puis "test 02 etc" puis "test 03 etc"
avec ces chaines le résultat est
test
01
etc
test
02
etc
test
03
etc
je cherche le résultat suivant
test 01 etc
test 02 etc
test 03 etc
merci de votre aide
Messages postés
35244
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
28 juillet 2020
5 299
Salut,

Suffit de faire avec un tableau :

#!/bin/sh   

list=( "tata 1" "toto 1" "titi 1" )   
for element in "${list[@]}"    
do   
        echo "element =" $element   
done

Ce qui donne à l'exécution :
$ ./foo.sh 
element = tata 1
element = toto 1
element = titi 1

$ 

;-))
Messages postés
3
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
16 janvier 2012
1
j'ai testé super ! je n'avais pas trouvé la syntaxe: "${list[@]}"
merci