« Programmation Bash/Boucles » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 2 :
 
== Boucle <code>for</code> ==
=== Première syntaxeforeach ===
La boucle <code>for</code> permet de parcourir une liste de valeurs, elle effectue donc un nombre de tours de boucle qui est connu à l'avance.
<syntaxhighlight lang="bash">
Ligne 9 :
done
</syntaxhighlight>
 
Par exemple, on peut utiliser la boucle <code>for</code> pour programmer un clone de la fonction <code>ls</code> :
==== Liste définie ====
Cet exemple est une commande qui lance une sous-commande en paramètre 1 dans plusieurs conteneurs :
<syntaxhighlight lang="bash">
CMD=$1
for app in {"app1","app2","app3"}; do
echo $app; docker-compose exec $app sh -c "$CMD"; echo ""
done
</syntaxhighlight>
 
==== Liste de fichiers ====
Par exemple, on peut utiliser la boucle <code>for</code>Exemple pour programmer un clone de la fonction <code>ls</code> :
<syntaxhighlight lang="bash">
for i in *
Ligne 18 ⟶ 29 :
Dans cet exemple, l'étoile est remplacée par tous les fichiers du répertoire courant, la boucle <code>for</code> va donc donner successivement comme valeur à la variable <code>i</code> tous ces noms de fichier. Le corps de la boucle affichant la valeur de la variable <code>i</code>, le nom de tous les fichiers du répertoire courant sont affichés successivement.
 
==== Liste d'arguments ====
La boucle for est très souvent utilisée dans un script pour parcourir la liste des arguments fournie au script. Par exemple :
 
<syntaxhighlight lang="bash">
for i in "$@"
Ligne 28 ⟶ 39 :
liste tous les arguments transmis au script.
 
==== Liste séquentielle ====
 
Il est souvent utile de pouvoir effectuer une boucle sur une liste de valeurs, pour cela on utilise la fonction <code>seq</code>. Cette fonction prend en arguments deux entiers et renvoie la liste de tous les entiers compris entre ces bornes.
<pre>