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 !
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