GNU/Linux >> Tutoriels Linux >  >> Linux

Comprendre la boucle for dans les scripts shell

Dans la continuité de nos tutoriels précédents, comprenons la boucle for dans les scripts shell aujourd'hui. Nous avons déjà couvert la boucle while précédemment et la boucle for a un usage similaire avec un format différent.

Démarrer

Les boucles sont largement utilisées par les programmeurs du monde entier. L'ajout de boucles à votre script shell vous aide à rendre votre code efficace en réduisant la quantité de code que vous devez écrire.

Cela se fait en automatisant l'exécution d'un ensemble d'instructions dans votre script shell au lieu de les écrire à plusieurs reprises.

Nous utilisons la boucle for dans les scripts shell pour les cas où nous connaissons le nombre de fois que nous souhaitons que notre boucle s'exécute. Ce nombre d'itérations peut être spécifié par une liste d'éléments. Comprenons le fonctionnement de la boucle for dans les scripts shell.

Comment créer une boucle for dans les scripts shell ?

Il existe deux manières d'exécuter une boucle for dans les scripts shell.

1. Utilisation du mot-clé "in"

for var in val_1 val_2 val_3 ... val_n
do
    statement 1
    statement 2
    statement 3
done

Ici, nous avons quatre mots-clés, à savoir for, in, do et fait .

  1. Le premier mot-clé ‘for’ spécifie le début de la boucle lorsque nous exécutons notre script shell.
  2. Il est suivi d'une variable qui peut prendre des valeurs spécifiées par val_1, val_2, etc.
  3. Le mot clé dans spécifie le début de cette liste de valeurs. Ces valeurs doivent être séparées par des "espaces", car tout autre caractère tel qu'une virgule sera traité comme faisant partie de la "valeur".
  4. Le mot clé faire est utilisé avant les instructions que nous souhaitons exécuter
  5. fait signifie la fin de notre boucle.

2. Utilisation de l'initialisation de style C

L'autre façon d'utiliser la boucle for dans les scripts shell consiste à incorporer une approche de programmation C. Voici à quoi ressemblerait la syntaxe.

for (( initialization parameter; condition; updation))
do
    statement 1
    statement 2
    statement 3
done

Ici, nous remplaçons le "dans" mot-clé pour une approche plus semblable à C.

  1. Avant que la boucle ne commence la première itération, le paramètre d'initialisation est utilisé pour initialiser une variable qui servira de compteur pour le nombre de boucles pendant lesquelles notre boucle s'exécute
  2. Tant que la condition vaut TRUE, la boucle exécutera toutes les instructions écrites entre "do " et " fait ".
  3. Enfin, le dernier paramètre "mise à jour ” est utilisé pour mettre à jour la variable faisant office de compteur.

Exemples de boucle for dans les scripts shell

Nous sommes maintenant familiarisés avec le concept et le fonctionnement de la boucle for dans les scripts shell. Mais pour bien comprendre une commande, vous devez pouvoir l'utiliser dans votre code.

Passons en revue quelques exemples d'utilisation pratique des boucles for

1. Création d'une boucle for de base

On commence par quelque chose de simple et basique. Ici, nous utilisons la première méthode d'utilisation de la boucle for.

Nous utilisons le mot-clé dans pour exécuter une boucle pendant 5 itérations tout en indiquant à l'utilisateur le nombre de fois que la boucle a été exécutée. Voici à quoi la boucle devrait ressembler dans votre code.

#!/bin/sh
for i in 1 2 3 4 5
do
  echo "Executing loop $i time(s)"
done

2. Génération d'une liste aléatoire de nombres à l'aide de la boucle for dans les scripts shell

Passons maintenant à un exemple d'utilisation de la variante de type C de la boucle For. Nous savons tous comment nous pouvons utiliser des commandes intégrées pour générer des nombres pseudo-aléatoires avec un script shell.

Ici, nous allons utiliser ces connaissances pour générer une liste de 5 nombres pseudo-aléatoires.

#!/bin/sh
for (( i=1; i <= 5; i++ ))
do
 echo "Randomiser iteration $i: $RANDOM"
done

3. Impression des noms de fichiers et de répertoires à l'aide de la boucle

Traiter un grand nombre de fichiers et de répertoires un par un prend beaucoup de temps. Taper la même commande encore et encore est une perte de temps.

Il faut donc profiter de la boucle for pour automatiser l'exécution d'une commande. Jetons un coup d'œil à l'exemple de script shell ci-dessous pour imprimer le nom de tous les fichiers et répertoires présents dans votre répertoire personnel.

#!/bin/sh
i=1
cd ~
for item in *
do
    echo "File number $((i++)) : $item"
done

Conclusion

Les boucles for sont un outil puissant pour les programmeurs shell. C'est le meilleur outil à utiliser lorsque vous devez exécuter un ensemble d'instructions un nombre fixe de fois.

En automatisant l'exécution d'instructions spécifiques, vous avez non seulement besoin d'écrire moins de code, mais vous libérez également du temps qui peut être utilisé dans des tâches plus importantes telles que le débogage.

Nous espérons que ce tutoriel a pu vous aider à comprendre comment utiliser la fonction de boucle For. Si vous avez des questions, des commentaires ou des suggestions, n'hésitez pas à nous contacter dans les commentaires ci-dessous.


Linux
  1. Personnalisation du shell Bash

  2. Existe-t-il des conventions de nommage pour les variables dans les scripts shell ?

  3. Tableaux associatifs dans les scripts shell ?

  4. Verrouiller correctement les scripts Shell ?

  5. Extensions de fichiers pour les scripts shell Unix ?

Qu'est-ce que le Shell sous Linux ?

Shell Scripting pour les débutants - Comment écrire des scripts Bash sous Linux

Bash For Loop – Le guide le plus pratique

Tableaux dans les scripts shell

La boucle while dans les scripts shell

La boucle Bash FOR expliquée et simplifiée