La boucle for
Fait partie de la section Les fondamentaux du Journey Terminal de Coddy — leçon 71 sur 82.
Parfois, vous devez répéter une action plusieurs fois. Au lieu d'écrire la même commande encore et encore, vous pouvez utiliser une boucle for pour itérer à travers une liste d'éléments et effectuer une action sur chacun d'eux.
Voici la structure de base d'une boucle for en Bash :
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneCe script affiche une salutation pour chaque nom dans la liste. La variable name prend chaque valeur à son tour : d'abord «Alice», puis «Bob», puis «Charlie». Le mot-clé do marque le début du corps de la boucle, et done la termine.
Les boucles for sont particulièrement puissantes lorsqu'elles sont combinées avec des wildcards. Vous pouvez parcourir tous les fichiers d'un répertoire :
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneCela parcourt chaque fichier .txt dans le répertoire courant. À chaque itération, la variable file contient le nom du fichier actuel, vous permettant d’effectuer des opérations sur chaque fichier automatiquement.
Vous pouvez également parcourir une plage de nombres en utilisant l'expansion des accolades :
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneCela affiche les nombres de 1 à 5. Les boucles for transforment les tâches répétitives en seulement quelques lignes de code, rendant vos scripts plus efficaces et plus faciles à maintenir.
Défi
FacileCréez un script shell appelé countdown.sh qui utilise une boucle for pour afficher un compte à rebours de 5 à 1.
Votre script doit :
- Commencer par la ligne shebang (
#!/bin/bash) - Utiliser une boucle
foravec l'expansion des accolades pour itérer à travers les nombres de 5 à 1 - Afficher chaque nombre sur sa propre ligne au format :
Countdown: [number]
Rendez le script exécutable et exécutez-le. Votre sortie devrait être :
Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1Indice : Utilisez
{5..1}pour créer une plage descendante. À l'intérieur de la boucle, utilisezecho "Countdown: $i"oùiest votre variable de boucle.
Aide-mémoire
Une boucle for vous permet d'itérer à travers une liste d'éléments et d'effectuer une action sur chacun d'eux.
Syntaxe de base :
for variable in list; do
# commands
doneParcourir une liste de valeurs :
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneParcourir des fichiers en utilisant des jokers :
for file in *.txt; do
echo "Processing $file"
doneParcourir une plage de nombres en utilisant l'expansion des accolades :
for i in {1..5}; do
echo "Number: $i"
donePour les plages décroissantes, inversez l'ordre :
for i in {5..1}; do
echo "Number: $i"
doneEssayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de données