Comme tout autre langage de script, Bash prend également en charge les boucles.
Les boucles sont idéales pour effectuer des tâches répétitives. Nous pouvons utiliser des boucles for et while dans nos scripts Bash.
Bash pour la boucle
La syntaxe de la boucle for est :
for VARIABLE in PARAM1 PARAM2 PARAM3
do
// scope of for loop
done
La boucle for s'exécutera pour chaque paramètre. Les paramètres peuvent être des nombres, une plage de nombres ou des chaînes, etc.
Exemple de boucle pour bash
Cet exemple simple imprime les nombres, de 1 à 5 en utilisant la boucle for :
#!/bin/bash
for i in 1 2 3 4 5
do
echo "$i"
done
Sortie :
1
2
3
4
5
Bash For Loop - Imprimer une plage de nombres
Nous pouvons également définir une plage de nombres à parcourir :
Par exemple :
for i in {1..5}
do
echo "$i"
done
Sortie :
1
2
3
4
5
Bash en boucle sur les chaînes
Nous pouvons également utiliser la boucle for pour parcourir les paramètres de chaîne :
#!/bin/bash
for day in MON TUE WED THU FRI SAT SUN
do
echo "$day"
done
Sortie :
MON
TUE
WED
THU
FRI
SAT
SUN
Bash For Loop - Style C
Nous pouvons également utiliser une syntaxe de style C pour écrire la boucle for. Par exemple :
#!/bin/bash
for ((i=1; i<=5; i++))
do
echo "$i"
done
Sortie
1
2
3
4
5
Pour boucler pour imprimer la liste des fichiers dans le répertoire courant
Pour lister tous les fichiers du répertoire courant à l'aide de la boucle bash for, nous utilisons :
#!/bin/bash
for fname in ./
do
ls -l $fname
done
Bash While Boucle
Bash prend également en charge les boucles while. Les boucles While exécutent un ensemble d'instructions jusqu'à ce qu'une condition soit évaluée comme vraie.
La syntaxe de la boucle while de Bash est :
while [condition]
do
//execute instructions
done
La condition est évaluée avant l'exécution de toute instruction. Par conséquent, il est nécessaire d'avoir un moyen de mettre à jour la condition, sinon la boucle s'exécutera indéfiniment.
Exemple de boucle While bash
Ce qui suit est une simple boucle while qui imprime les nombres 1 à 5. La boucle se termine lorsque le nombre est supérieur à 5.
#!/bin/bash
num=1
while [ $num -le 5 ]
do
echo "$num"
let num++
done
Boucle While de style C bash
Comme pour la boucle for, nous pouvons également écrire la boucle while bash dans un langage de type C.
Par exemple :
#!/bin/bash
num=1
while((num <= 5))
do
echo $num
let num++
done