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

Messages postés
3
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
16 janvier 2012
- - Dernière réponse : martro1870
Messages postés
3
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
16 janvier 2012
- 16 janv. 2012 à 19:10
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
28956
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 août 2019
6622
4
Merci
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

Dire « Merci » 4

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

CCM 59081 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
1
Merci
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
zipe31
Messages postés
36784
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
24 août 2019
3886 -
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

$ 

;-))
martro1870
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