logo

Bash pour la boucle

Dans ce sujet, nous comprendrons l'utilisation de pour la boucle dans les scripts Bash.

Comme tout autre langage de programmation, les scripts shell bash prennent également en charge les « boucles for » pour effectuer des tâches répétitives. Cela nous aide à parcourir un ensemble particulier d'instructions sur une série de mots dans une chaîne ou sur des éléments d'un tableau. Par exemple, vous pouvez soit exécuter une commande (ou une tâche) UNIX plusieurs fois, soit simplement lire et traiter la liste des commandes à l'aide d'une « boucle for ».

Syntaxe de la boucle For

Nous pouvons appliquer la « boucle for » sur le script bash de deux manières. Une méthode est « for-in » et une autre est la syntaxe de style C. Voici la syntaxe de la « boucle for » dans les scripts shell bash :

 for variable in list do commands done 

Ou

 for (( expression1; expression2; expression3 )) do commands done 

Il y a quelques points clés de l'instruction « for loop » :

  • Chaque bloc de « boucle for » dans bash commence par le mot-clé « do » suivi des commandes à l'intérieur du bloc. L'instruction 'for loop' est fermée par le mot-clé 'done'.
  • Le nombre de fois pendant lequel une « boucle for » sera itérée dépend des variables de liste déclarées.
  • La boucle sélectionnera un élément de la liste et attribuera la valeur à une variable qui sera utilisée dans la boucle.
  • Après l'exécution des commandes entre « do » et « done », la boucle revient en haut et sélectionne l'élément suivant dans la liste et répète tout le processus.
  • La liste peut contenir des nombres ou des chaînes, etc. séparés par des espaces.

Certains exemples de « boucles for » sont donnés ci-dessous pour illustrer leur fonctionnement :

Exemple de base de « boucle For »

Script bash

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

Sortir

Bash pour la boucle

Boucle For pour lire une plage

Script bash

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

Sortir

Bash pour la boucle

Boucle For pour lire une plage avec incrément/décrément

Nous pouvons augmenter ou diminuer une valeur spécifiée en ajoutant deux autres points (..) et la valeur à suivre, par exemple {START..END..INCREMENT}. Consultez l'exemple ci-dessous :

Pour l'incrément

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

Sortir

Bash pour la boucle

Pour décrémenter

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

Sortir

Bash pour la boucle

Boucle For pour lire les variables du tableau

Nous pouvons utiliser la « boucle for » pour parcourir les valeurs d’un tableau.

répertoire dans les commandes Linux

La syntaxe peut être définie comme :

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

Sortir

Pour chaque élément du « tableau », les instructions ou l'ensemble de commandes de « do » à « done » sont exécutés. Chaque élément est accessible en tant que « i » dans la boucle pour l'itération respective. Consultez l'exemple ci-dessous expliquant l'utilisation de la « boucle for » pour parcourir les éléments d'un tableau :

Script bash

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

Sortir

Bash pour la boucle

Boucle For pour lire les espaces blancs dans la chaîne comme séparateurs de mots

La syntaxe peut être définie comme ci-dessous :

 #!/bin/bash for word in $str; do done 

Ici, str fait référence à une chaîne.

Les instructions de « do » à « done » sont exécutées pour chaque « mot » d'une chaîne. Consultez l'exemple ci-dessous :

Script bash

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

Sortir

Bash pour la boucle

Boucle For pour lire chaque ligne de la chaîne sous forme de mot

La syntaxe peut être définie comme ci-dessous :

 #!/bin/bash for word in '$str'; do done 

Ici, les instructions de « do » à « done » sont exécutées pour chaque « ligne » d'une chaîne. Consultez l'exemple ci-dessous :

obj en java

Script bash

 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

Sortir

Bash pour la boucle

Remarque : La seule différence entre « Boucle For pour lire les espaces blancs dans une chaîne comme séparateurs de mots » et « Boucle For pour lire chaque ligne dans une chaîne comme un mot » réside dans les guillemets doubles autour de la variable de chaîne.

Boucle For pour lire trois expressions

La syntaxe à trois expressions est la syntaxe la plus courante de la « boucle for ». La première expression fait référence au processus d'initialisation, la deuxième expression fait référence à la terminaison et la troisième expression fait référence à l'incrément ou à la décrémentation.

Consultez l'exemple ci-dessous pour imprimer 1 à 10 nombres en utilisant trois expressions avec la boucle for :

Script bash

 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

Sortir

Bash pour la boucle

Boucle For avec une instruction Continue

Nous pouvons utiliser l'instruction « continue » à l'intérieur de la boucle « for » pour ignorer toute instruction spécifique sur une condition particulière. Il indique à Bash d'arrêter d'exécuter cette itération particulière de la boucle et de traiter l'itération suivante.

Script bash

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

Sortir

Bash pour la boucle

Conclusion

Dans cette rubrique, nous avons expliqué comment utiliser l'instruction de boucle for dans Bash pour effectuer des tâches spécifiques.