Le cycle for en Bash est un outil essentiel pour automatiser des tâches répétitives dans les scripts shell. Il permet d’exécuter une série de commandes sur chaque élément d’une liste, facilitant ainsi la gestion de fichiers, la manipulation de données ou l’exécution de commandes multiples. Cet article vous guide à travers les différentes utilisations du cycle for, avec des exemples concrets et des conseils pratiques.
Syntaxe du For Loop en Bash #
La syntaxe de base d’un cycle for en Bash est la suivante :
for variable in liste; do
commande
done
- variable : représente chaque élément de la liste.
- liste : peut être une série d’éléments séparés par des espaces ou une séquence générée par des commandes.
- commande : instructions exécutées pour chaque élément.
Exemple simple
Voici un exemple simple qui affiche les nombres de 1 à 5 :
À lire GIGO Programmation : Principe et Exemples
for i in {1..5}; do
echo "Nombre : $i"
done
Lorsque vous exécutez ce script, la sortie sera :
Nombre : 1
Nombre : 2
Nombre : 3
Nombre : 4
Nombre : 5
Utilisation avancée du For Loop #
Boucle sur une liste définie
Vous pouvez également itérer sur une liste définie. Par exemple, pour traiter une série de noms :
noms=("Alice" "Bob" "Charlie")
for nom in "${noms[@]}"; do
echo "Bonjour, $nom !"
done
Cela produira :
Bonjour, Alice !
Bonjour, Bob !
Bonjour, Charlie !
Traitement de fichiers
Un cas pratique fréquent consiste à traiter plusieurs fichiers. Supposons que vous souhaitiez compresser tous les fichiers .txt dans un répertoire :
À lire Grande École Numérique : Guide 2026
for fichier in *.txt; do
gzip "$fichier"
done
Cette commande va compresser tous les fichiers texte présents dans le répertoire courant.
Piège à éviter #
Lorsque vous utilisez le cycle for, faites attention aux espaces dans vos listes. Par exemple, si vous avez une liste comme fichiers=("file1.txt" "file2.txt" "file 3.txt"), l’espace dans "file 3.txt" pourrait provoquer des erreurs. Utilisez toujours des guillemets autour des variables pour éviter ce problème.
Exemples chiffrés et cas d’utilisation #
Exemple avec calculs
Imaginons que vous souhaitiez calculer le carré des nombres de 1 à 5 :
for i in {1..5}; do
carré=$((i * i))
echo "Le carré de $i est $carré"
done
La sortie sera :
À lire AWK Guide Complet : Programmation et Scripts Unix
Le carré de 1 est 1
Le carré de 2 est 4
Le carré de 3 est 9
Le carré de 4 est 16
Le carré de 5 est 25
Tableau comparatif des méthodes d’itération
| Méthode | Description | Exemple |
|---|---|---|
| For simple | Itération sur une séquence définie | for i in {1..5}; do ... |
| For sur tableau | Itération sur un tableau | for nom in "${noms[@]}"; do ... |
| For avec find | Itération sur les résultats d’une commande | for fichier in $(find . -name "*.txt"); do ... |
Action immédiate #
Pour pratiquer ce que vous avez appris, créez un script Bash utilisant un cycle for. Essayez d’itérer sur une liste de vos fichiers préférés et imprimez leurs tailles. Voici un exemple rapide pour démarrer :
for fichier in *; do
echo "$fichier a une taille de $(stat -c%s "$fichier") octets."
done
FAQ #
Qu’est-ce qu’un for loop en Bash ?
Un for loop en Bash permet d’exécuter des commandes répétées pour chaque élément d’une liste ou d’une séquence.
Comment fonctionne la syntaxe du for loop ?
La syntaxe comprend la déclaration d’une variable qui prend successivement chaque valeur d’une liste jusqu’à ce que toutes les valeurs aient été traitées.
Peut-on imbriquer des for loops ?
Oui, il est possible d’impliquer plusieurs for loops les uns dans les autres pour traiter des structures plus complexes.
À lire AVD Android : Configuration Émulateur Guide 2026
Quelles sont les alternatives au for loop ?
Les alternatives incluent les boucles while et until, qui permettent également l’itération mais sous différentes conditions.
Comment gérer les espaces dans les noms de fichiers lors d’un for loop ?
Utilisez toujours des guillemets autour des variables pour éviter que les espaces ne provoquent des erreurs lors du traitement.
En appliquant ces conseils et exemples, vous serez en mesure d’utiliser efficacement le cycle for en Bash pour automatiser vos tâches et simplifier vos scripts.