GNU/Linux >> Tutoriels Linux >  >> Linux

La boucle while dans les scripts shell

Aujourd'hui, nous allons découvrir la boucle while dans les scripts shell. Les boucles sont une partie essentielle de tout langage de programmation. Lorsque nous écrivons un code pour exécuter un ensemble d'instructions 15 fois, écrire la même instruction encore et encore serait improductif.

Les boucles font gagner du temps au programmeur.

L'une des boucles les plus couramment utilisées dans n'importe quel langage de programmation est la boucle while. Nous utilisons la boucle while dans les scripts shell pour répéter un ensemble d'instructions tant qu'une condition donnée est satisfaite après chaque itération.

Comment fonctionne une boucle while dans les scripts shell ?

La boucle while dans les scripts shell vous aide à rendre votre code efficace en réduisant la quantité de code que vous devez écrire.

C'est pratique lorsque vous devez faire quelque chose dans votre script encore et encore. Comprenons le fonctionnement d'une boucle while dans les scripts shell à travers sa syntaxe :

while [ condition ] 
do 
    statement 1
    statement 2
done

Ici, nous avons trois mots-clés, à savoir while , faire et fait .

  • Le premier mot clé "while" indique le début de la boucle lorsque nous exécutons le script shell.
  • Il est suivi d'une condition entre parenthèses.
  • Le mot clé "do" est utilisé avant les instructions à exécuter dans la boucle.
  • Chaque boucle while consiste en une condition suivie d'un ensemble de commandes.
  • Ensuite, nous rencontrons le mot-clé done qui marque la fin de la boucle.

Considérez le do et le done comme des parenthèses ouvrantes et fermantes dans d'autres langages de programmation

Tout d'abord, la condition est évaluée. Si la condition est VRAIE, les instructions qui suivent font sera exécuté. Cela se répète jusqu'à ce qu'il y ait un point où la condition est évaluée à FALSE.

Une fois la condition fausse, la boucle sera terminée.

La chose importante à garder à l'esprit est que, comme la programmation C, les scripts shell sont sensibles à la casse. Par conséquent, vous devez être prudent lorsque vous utilisez les mots-clés dans votre code.

Si vous souhaitez en savoir plus sur les instructions conditionnelles, cliquez ici pour en savoir plus sur if-else dans les scripts shell.

Utilisation de la boucle while dans les scripts shell

Le simple fait de lire la théorie et de jeter un coup d'œil sur la syntaxe ne vous sera d'aucune utilité tant que vous ne pourrez pratiquement pas l'utiliser dans votre code.

Par conséquent, pour une meilleure compréhension du concept et de son application pratique, consultez l'exemple suivant.

Boucle While pour imprimer les 5 premiers chiffres

Il est toujours préférable de commencer par quelque chose de basique. Ici, nous allons utiliser la boucle while dans les scripts shell pour imprimer les 5 premiers nombres naturels sur notre écran.

Ce script simple bouclera tant que la valeur de la variable 'a' est inférieure à ('-lt') le 5. La condition est valable pour les nombres de 1 à 4, par conséquent, la commande sera exécutée pour le même.

Pour tout nombre supérieur ou égal à 5, la condition est fausse. Par conséquent, la boucle sera terminée. Voici comment le code sera écrit.

#!/bin/sh
a=1
while [ $a -lt 5 ]
do
    echo $a
    ((a++))
done

Trouver la factorielle à l'aide de la boucle while dans les scripts shell

L'un des exemples les plus pratiques consisterait à utiliser la fonctionnalité d'une boucle while pour effectuer une tâche. Trouvons la factorielle d'un nombre.

Le code suivant montre comment nous pouvons accomplir cette tâche en utilisant la boucle while.

#!/bin/sh
counter=5
factorial=1
while [ $counter -gt 0 ]
do 
      factorial=$(( $factorial * $counter ))
      ((counter--))
done 
echo $factorial

Comme vous pouvez le voir, la factorielle de la boucle while est correctement imprimée sous la forme 120.

Lecture d'un fichier dans des scripts shell à l'aide de la boucle while

Lorsque nous traitons des fichiers texte, la boucle while s'avère être un outil important car nous pouvons faire en sorte que la boucle lise l'intégralité du fichier en utilisant la commande en lecture commande.

Cette commande peut nous aider à lire le contenu d'un fichier à partir de la ligne de commande. Le code suivant utilise cette fonctionnalité de la boucle while dans un script shell pour lire le contenu d'un fichier une ligne à la fois, puis l'afficher sur l'écran de l'utilisateur.

#!/bin/bash
FILE=$1
while read line
do
    # use $line variable to process line
    echo $line
done < $FILE

Comme vous pouvez le voir, j'ai passé le nom du fichier en argument car dans notre script shell, nous avons utilisé $1 et l'avons affecté à la variable FILE. Cela signifie que le premier argument sera accepté comme nom de fichier et que le script procédera à la lecture du fichier.

De plus, nous utilisons l'opérateur de redirection d'entrée dans le script après la fin afin que nous puissions utiliser le nom de fichier directement comme argument lors de l'exécution du script.

Si vous ignorez cette partie, votre commande ressemblera à :

bash file.sh < filename.txt

Donc, vous voyez, redirigez l'entrée dans le script ou lors de l'exécution du script. Les résultats sont les mêmes.

Conclusion

La boucle while dans les scripts shell est une arme clé dans l'arsenal de tout programmeur shell. C'est le meilleur outil à utiliser lorsque vous devez exécuter un ensemble d'instructions répétées en fonction d'une condition.

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 While. Si vous avez des questions, des commentaires ou des suggestions, n'hésitez pas à nous contacter dans les commentaires ci-dessous.


Linux
  1. Autoriser Setuid sur les scripts Shell ?

  2. Le point de la commande externe `cd` ?

  3. Tableaux associatifs dans les scripts shell ?

  4. Verrouiller correctement les scripts Shell ?

  5. Priorité des opérateurs logiques Shell &&, ||?

Bash pendant la boucle

Qu'est-ce que le Shell sous Linux ?

Comment créer des scripts shell

Tableaux dans les scripts shell

Comment utiliser if-else dans les scripts shell ?

Comprendre la boucle for dans les scripts shell