« Programmation Bash/Boucles » : différence entre les versions
Contenu supprimé Contenu ajouté
m JackPotte a déplacé la page Programmation bash-ksh/Boucles vers Programmation Bash/Boucles sans laisser de redirection |
fusion d'historiques |
||
Ligne 1 :
{{
== Boucle <code>for</code> ==
=== 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.
<source lang="bash">
for variable in liste_valeurs
do instruction(s)
done
</
Par exemple, on peut utiliser la boucle <code>for</code> pour
<source lang="bash">
for i in *
do
done
</
Dans cet exemple, l'étoile
La boucle for est très souvent utilisée dans un script pour parcourir la liste des arguments fournie au script. Par exemple :
<source lang="bash">
for i in "$@"
do
echo "$i"
done
</source>
liste tous les arguments transmis au script.
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.
Ligne 36 ⟶ 49 :
=== Seconde syntaxe ===
La boucle <code>for</code> possède une deuxième syntaxe :
<source lang="bash">
for ((e1;e2;e3))
do instruction(s)
done
</
Dans laquelle, <code>e1</code>, <code>e2</code> et <code>e3</code> sont des expressions
<source lang="bash">
for ((i=0 ; 10 - $i ; i++))
do echo $i
done
</
== 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
<source lang="bash">
while condition
do instruction(s)
done
</
<source lang="bash">
#! /bin/
a_trouver=$(($RANDOM % 100))
Ligne 64 ⟶ 77 :
echo "entrez un nombre compris entre 0 et 100"
read i
while [ "$i" -ne "$a_trouver" ]; do
if [ "$i" -lt "$a_trouver" ]; then
echo "trop petit, entrez un nombre compris entre 0 et 100"
else
Ligne 73 ⟶ 86 :
done
echo "bravo, le nombre etait en effet $a_trouver"
</
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.
|