Guide débutant sur les boucles dans les shells Unix/Linux

Bonjour, futurs programmeurs ! Aujourd'hui, nous allons plonger dans le monde passionnant des boucles dans les shells Unix et Linux. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - je vais vous guider étape par étape, comme j'ai fait pour des centaines d'étudiants au fil des ans. Commençons !

Unix / Linux - Shell Loops

Qu'est-ce qu'une boucle en shell ?

Imaginez que vous êtes à une fête et que vous devez saluer chaque invité. Plutôt que d'écrire un message "Bonjour" séparé pour chaque personne, ne serait-il pas agréable de pouvoir dire "Répéter 'Bonjour' pour chaque invité" ? C'est exactement ce que font les boucles en programmation - elles nous permettent de répéter un ensemble d'instructions plusieurs fois.

Dans les scripts shell, les boucles sont extrêmement utiles pour automatiser des tâches répétitives. Elles peuvent vous faire gagner du temps et réduire les risques d'erreurs qui pourraient survenir si vous deviez répéter manuellement des commandes.

Types de boucles en shell

En scripting shell Unix/Linux, nous travaillons principalement avec trois types de boucles :

Type de boucle Description Cas d'utilisation
boucle for Itère sur une liste d'items Lorsque vous savez exactement le nombre d'itérations
boucle while Continue tant qu'une condition est vraie Lorsque vous ne savez pas combien d'itérations sont nécessaires
boucle until Continue jusqu'à ce qu'une condition devienne vraie Similaire à while, mais avec une logique inversée

Explorons chacun de ces types en détail.

La boucle for

La boucle for est comme un facteur appliqué qui livre un message à chaque maison sur une rue. Elle parcourt une liste d'items et exécute une action pour chacun d'eux.

Voici la syntaxe de base :

for variable in list
do
commands
done

Voici un exemple simple :

#!/bin/bash
for fruit in apple banana orange
do
echo "J'aime $fruit"
done

Si vous exécutez ce script, vous verrez :

J'aime apple
J'aime banana
J'aime orange

Dans cet exemple, notre "facteur" (la boucle) livre le message "J'aime" à chaque "maison" (fruit) sur la "rue" (notre liste de fruits).

La boucle while

La boucle while est comme un vendeur tenace qui continue à frapper à votre porte tant que vous n'avez pas acheté leur produit. Elle continue d'exécuter un ensemble de commandes tant qu'une condition est vraie.

Voici la syntaxe de base :

while [ condition ]
do
commands
done

Voici un exemple :

#!/bin/bash
count=1
while [ $count -le 5 ]
do
echo "Le compteur est : $count"
count=$((count + 1))
done

Ce script affichera :

Le compteur est : 1
Le compteur est : 2
Le compteur est : 3
Le compteur est : 4
Le compteur est : 5

Dans ce cas, notre "vendeur" (la boucle) continue de "frapper" (afficher le compteur) jusqu'à ce que le compteur atteigne 5.

La boucle until

La boucle until est comme attendre un bus. Vous continuez d'attendre jusqu'à ce que le bus arrive. Elle continue d'exécuter des commandes jusqu'à ce qu'une condition devienne vraie.

Voici la syntaxe de base :

until [ condition ]
do
commands
done

Voici un exemple :

#!/bin/bash
count=1
until [ $count -gt 5 ]
do
echo "Le compteur est : $count"
count=$((count + 1))
done

Ce script produira le même affichage que notre exemple de boucle while. La différence réside dans la logique : nous continuons jusqu'à ce que le compteur soit supérieur à 5, plutôt que tant qu'il est inférieur ou égal à 5.

Niveau des boucles

Tout comme vous pouvez avoir une pièce à l'intérieur d'une pièce (pensez à un placard), vous pouvez également avoir une boucle à l'intérieur d'une autre boucle. Cela s'appelle imbriquer des boucles.

Voici un exemple de boucles imbriquées for :

#!/bin/bash
for i in 1 2 3
do
echo "Boucle externe : $i"
for j in a b c
do
echo "  Boucle interne : $j"
done
done

Ce script affichera :

Boucle externe : 1
Boucle interne : a
Boucle interne : b
Boucle interne : c
Boucle externe : 2
Boucle interne : a
Boucle interne : b
Boucle interne : c
Boucle externe : 3
Boucle interne : a
Boucle interne : b
Boucle interne : c

Pensez à cela comme un immeuble à plusieurs étages. La boucle externe parcourt chaque étage, et pour chaque étage, la boucle interne parcourt chaque appartement.

Niveau des boucles while

Nous pouvons également imbriquer des boucles while. Voici un exemple :

#!/bin/bash
i=1
while [ $i -le 3 ]
do
echo "Boucle externe : $i"
j=1
while [ $j -le 3 ]
do
echo "  Boucle interne : $j"
j=$((j + 1))
done
i=$((i + 1))
done

Ce script produira un output similaire à notre exemple de boucles imbriquées for.

Conclusion

Félicitations ! Vous avez刚刚 fait vos premiers pas dans le monde des boucles en shell. Souvenez-vous, les boucles sont comme des robots utiles qui peuvent répéter des tâches pour vous. La boucle for est parfaite lorsque vous savez exactement combien de fois vous voulez répéter quelque chose. Les boucles while et until sont idéales lorsque vous ne savez pas et que vous devez continuer jusqu'à ce qu'une condition soit remplie.

En continuant votre parcours en programmation, vous trouverez les boucles être des outils précieux dans votre boîte à outils de codage. Elles vous aideront à automatiser des tâches répétitives, à traiter de grandes quantités de données et à créer des scripts plus efficaces et élégants.

Continuez à pratiquer, et bientôt vous bouclerez comme un pro ! Souvenez-vous, chaque programmeur chevronné a commencé exactement où vous êtes maintenant. Bonne programmation !

Credits: Image by storyset