Outils pour utilisateurs

Outils du site


linux:shell:structures_controle:for

Linux

Boucle sur liste de valeurs - FOR


Syntaxe

La boucle « for… do…done » va boucler autant de fois qu'il existe de valeurs dans la liste. À chaque tour, la variable « $var » prendra séquentiellement comme contenu la valeur suivante de la liste.

  • Syntaxe 1

while liste de commandes 
for var in valeur1 [valeur2 ?] 
do 
    commande1 
    [ commande2 ?] 
done

  • Syntaxe 2

e1, e2 et e3 sont des expressions arithmétiques. La boucle commence par exécuter l'expression e1, puis tant que l'expression e2 est différente de zéro le bloc d'instructions est exécuté et l'expression e3 évaluée.

for ((e1;e2;e3))
    do instruction(s)
done
Exemple :
for ((i=0 ; 10 - $i ; i++))
    do echo $i
done

Liste définie

Cet exemple est une commande qui lance une sous-commande en paramètre 1 dans plusieurs conteneurs :

CMD=$1
for app in {"app1","app2","app3"}; do
  echo $app; docker-compose exec $app sh -c "$CMD"; echo ""
done

Liste de fichiers

Exemple pour programmer un clone de la fonction ls :

for i in *
do
 echo $i
done

Liste d'arguments

La boucle for est très souvent utilisée dans un script pour parcourir la liste des arguments fournie au script :

for i in "$@"
do
 echo "$i"
done

Liste séquentielle

Il est souvent utile de pouvoir effectuer une boucle sur une liste de valeurs, pour cela on utilise la fonction seq. Cette fonction prend en arguments deux entiers et renvoie la liste de tous les entiers compris entre ces bornes.

$ seq 1 4
1
2
3
4
Utilisée conjointement avec la boucle for, la commande seq permet donc d'avoir un compteur de boucle :
for i in `seq 1 4`; do echo "tour de boucle $i"; done
tour de boucle 1
tour de boucle 2
tour de boucle 3
tour de boucle 4

linux/shell/structures_controle/for.txt · Dernière modification : 2022/07/12 16:54 de zandor