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

Contenu supprimé Contenu ajouté
m Révocation des modifications de 80.14.32.172 (discussion) vers la dernière version de BarryNea
Balise : Révocation
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 4 :
=== Première syntaxe ===
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.
<sourcesyntaxhighlight lang="bash">
for variable in liste_valeurs
do instruction(s)
done
</syntaxhighlight>
</source>
Par exemple, on peut utiliser la boucle <code>for</code> pour programmer un clone de la fonction <code>ls</code> :
<sourcesyntaxhighlight lang="bash">
for i in *
do
echo $i
done
</syntaxhighlight>
</source>
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.
 
La boucle for est très souvent utilisée dans un script pour parcourir la liste des arguments fournie au script. Par exemple :
 
<sourcesyntaxhighlight lang="bash">
for i in "$@"
do
echo "$i"
done
</syntaxhighlight>
</source>
liste tous les arguments transmis au script.
 
Ligne 49 :
=== Seconde syntaxe ===
La boucle <code>for</code> possède une deuxième syntaxe :
<sourcesyntaxhighlight lang="bash">
for ((e1;e2;e3))
do instruction(s)
done
</syntaxhighlight>
</source>
Dans laquelle, <code>e1</code>, <code>e2</code> et <code>e3</code> sont des expressions arithmétiques. Une telle boucle commence par exécuter l'expression <code>e1</code>, puis tant que l'expression <code>e2</code> est différente de zéro le bloc d'instructions est exécuté et l'expression <code>e3</code> évaluée.
 
<sourcesyntaxhighlight lang="bash">
for ((i=0 ; 10 - $i ; i++))
do echo $i
done
</syntaxhighlight>
</source>
 
== Boucles <code>until</code> et <code>while</code> ==
La boucle <code>while</code> exécute un bloc d'instructions tant qu'une certaine condition est satisfaite, lorsque cette condition devient fausse la boucle se termine. Cette boucle permet donc de faire un nombre indéterminé de tours de boucle, voire infini si la condition ne devient jamais fausse.
<sourcesyntaxhighlight lang="bash">
while condition
do instruction(s)
done
</syntaxhighlight>
</source>
 
<sourcesyntaxhighlight lang="bash" line="1">
#! /bin/bash
 
Ligne 86 :
done
echo "bravo, le nombre etait en effet $a_trouver"
</syntaxhighlight>
</source>
 
La syntaxe de la boucle <code>until</code> est exactement la même que celle de la boucle <code>while</code>, mais sa signification est inversée : la boucle est exécutée tant que la condition est fausse.