Le looping en Bash est essentiel pour automatiser des tâches répétitives dans vos scripts. Que vous souhaitiez traiter des fichiers, exécuter des commandes plusieurs fois ou gérer des listes, les boucles vous permettent d’optimiser votre travail. Ce tutoriel présente les différents types de boucles disponibles en Bash, des exemples concrets et les meilleures pratiques basées sur l’expérience terrain.
Types de boucles en Bash #
Bash propose principalement trois types de boucles :
1. Boucle for
La boucle for itère sur une liste d’éléments. Voici un exemple pratique :
À lire HTML CSS : Intégrer Guide Complet 2026
#!/bin/bash
for i in {1..5}; do
echo "Compteur: $i"
done
Cette boucle affichera les nombres de 1 à 5. Ce type de boucle est particulièrement utile lorsque vous connaissez à l’avance le nombre d’itérations.
2. Boucle while
La boucle while continue tant qu’une condition est vraie. Par exemple :
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Compteur: $count"
((count++))
done
Ici, la boucle s’exécute jusqu’à ce que count dépasse 5. C’est utile pour traiter des fichiers jusqu’à la fin.
3. Boucle until
La boucle until fonctionne à l’inverse de la boucle while. Elle s’exécute jusqu’à ce qu’une condition soit vraie :
À lire VCS Version Control : Guide Développeur 2026
#!/bin/bash
count=1
until [ $count -gt 5 ]; do
echo "Compteur: $count"
((count++))
done
Cet exemple affichera également les nombres de 1 à 5, mais différemment.
Exemples chiffrés d’application #
Pour illustrer l’utilisation des boucles, considérons un scénario où vous devez traiter un fichier contenant une liste d’adresses e-mail et envoyer un message à chacun. Voici comment le faire avec une boucle for :
#!/bin/bash
emails=("user1@example.com" "user2@example.com" "user3@example.com")
for email in "${emails[@]}"; do
echo "Envoi du message à $email"
# Commande fictive pour envoyer un email ici.
done
Si vous avez une liste de 1000 e-mails, cette approche permettrait d’automatiser l’envoi sans intervention manuelle.
Pièges à éviter #
L’un des pièges courants lors de l’utilisation des boucles en Bash est l’oubli de l’incrémentation dans une boucle while. Cela peut entraîner une boucle infinie, rendant votre script inutilisable. Assurez-vous toujours que la condition finira par devenir fausse.
À lire Docker prune : Guide nettoyage complet
Bonnes pratiques pour le scripting #
- Utilisez des commentaires : documentez vos scripts pour faciliter leur compréhension.
- Testez vos scripts : utilisez
bash -n script.shpour vérifier la syntaxe avant exécution. - Soyez conscient des performances : évitez les boucles imbriquées lorsque cela est possible, car elles peuvent ralentir considérablement votre script.
Tableaux comparatifs des types de boucles #
| Type de boucle | Avantages | Inconvénients |
|---|---|---|
for |
Simple et direct | Limité aux listes connues |
while |
Flexible avec conditions dynamiques | Risque de boucle infinie |
until |
Idéal pour les conditions inverses | Moins utilisé et moins intuitif |
Action immédiate #
Pour pratiquer ce que vous avez appris, essayez d’écrire un script qui lit un fichier texte ligne par ligne et affiche chaque ligne avec son numéro. Cela vous aidera à renforcer votre compréhension des boucles en Bash.
FAQ #
Qu’est-ce qu’une boucle en Bash ?
Une boucle en Bash est une structure qui permet d’exécuter une série d’instructions plusieurs fois.
Comment créer une boucle infinie en Bash ?
Vous pouvez créer une boucle infinie avec while true; do ... done. Attention aux implications !
Quelle est la différence entre for, while et until ?
- La boucle
foritère sur une liste. - La boucle
whilecontinue tant qu’une condition est vraie. - La boucle
untils’exécute jusqu’à ce qu’une condition devienne vraie.
Comment arrêter une boucle en cours d’exécution ?
Vous pouvez utiliser la commande break pour sortir immédiatement d’une boucle.
À lire GIGO Programmation : Principe et Exemples
Les boucles en Bash sont-elles performantes ?
Les performances dépendent du contexte ; évitez les boucles imbriquées lorsque cela est possible pour améliorer la vitesse.
Peut-on combiner plusieurs types de boucles dans un même script ?
Oui, il est courant de combiner différents types de boucles pour répondre à des besoins spécifiques dans un script complexe.