Syntaxe de Loop While:
tandis que [condition]
faire
commandes
fait
Le bloc de démarrage et de fin de le temps la boucle est définie par faire et fait Mots-clés dans le script bash. La condition de terminaison est définie au début de la boucle. Ouvrez un éditeur de texte pour écrire un script bash et tester ce qui suit pendant que les exemples de boucle.
Exemple-1: itérez la boucle pour un nombre fixe de fois
Créer un fichier bash nommé tandis que 1.shot avec le contenu suivant. Ici, la boucle itérera 5 fois et imprimera la valeur de comptoir dans chaque itération.
#!/ bac / bash
# Initialiser le compteur
n = 1
# Itérer la boucle pendant 5 fois
tandis que [$ n -le 5]
faire
# Imprimez la valeur de n dans chaque itération
Echo "Running $ n Time"
# Incrément la valeur de n par 1
((n ++))
fait
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-2: Utilisation de la déclaration de pause pour la sortie conditionnelle
la pause La déclaration est utilisée pour sortir tôt de la boucle en fonction d'une condition particulière. Créer un fichier bash nommé tandis que 2.shot avec le code suivant. Ici, la boucle est définie pour itérer 10 fois, mais l'itération sera arrêtée lorsque la valeur du comptoir est de 6.
#!/ bac / bash
# Initialiser le compteur
n = 1
# Itérer la boucle pour 10 fois
tandis que [$ n -le 10]
faire
# Vérifiez la valeur de n
Si [$ n == 6]
alors
écho "terminé"
casser
Fi
# Imprime la valeur actuelle de n
Echo "Position: $ n"
# Incrément la valeur de n par 1
((n ++))
fait
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-3: Utilisation de l'instruction CONSTANT pour omettre une étape particulière
Créer un fichier bash nommé Pendant 3 ans.shot avec le code suivant. Dans cet exemple, la boucle iratera 5 fois, mais elle n'imprimera pas les 5 positions. Lorsque la boucle itère pour la 3e fois, l'instruction CONSTERNE sera exécutée et la boucle ira pour la prochaine itération sans imprimer le texte de la 3e position.
#!/ bac / bash
# Initialiser le compteur
n = 0
# Itérer la boucle pendant 5 fois
tandis que [$ n -le 5]
faire
# Incrément la valeur de n par 1
((n ++))
# Vérifiez la valeur de n
Si [$ n == 3]
alors
continuer
Fi
# Imprime la valeur actuelle de n
Echo "Position: $ n"
fait
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-4: Lisez l'argument de la ligne de commande avec des options
Créer un fichier bash nommé Pendant 4.shot avec le code suivant. Ici, la boucle est utilisée pour lire les arguments en ligne de commande avec des options. Le script imprimera les valeurs d'argument formatées après l'exécution si les valeurs à trois arguments passent avec l'option valide.
#!/ bac / bash
# Lisez les valeurs des arguments de ligne de commande avec l'option à l'aide de la boucle
tandis que les getopts n: a: e: opt
faire
cas "$ opt"
dans
n) name = $ optarg ;;
a) adresse = $ optarg ;;
e) email = $ optarg ;;
*) Echo "Option non valide"
sortie 1 ;;
ESAC
fait
# Imprimez les valeurs de l'argument
printf "Nom: $ name \ naddress: $ adresse \ nemail: $ email \ n"
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-5: Lisez la ligne de fichier par ligne
Créer un fichier bash nommé while5.shot avec le code suivant. Ici, un nom de fichier sera donné dans le premier argument de ligne de commande à l'heure d'exécution. Si le fichier existe, le contenu du fichier sera imprimé ligne par ligne à l'aide de la boucle; Sinon, un message d'erreur sera imprimé.
#!/ bac / bash
# Vérifiez que la valeur de l'argument de la ligne de commande est donnée ou non
si [$ # -gt 0]; alors
# Attribuez le nom de fichier à partir de la valeur d'argument Comand-Line
nom de fichier = 1 $
# Lire les fichiers ligne par ligne
en lisant la ligne; faire
# Imprimez chaque ligne
Echo $ line
fait < $filename
autre
# Message d'impression si aucun argument n'est fourni
ECHO "La valeur de l'argument est manquante."
Fi
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-6: Écrivez du contenu dans un fichier
Créer un fichier bash nommé Pendant 6.shot avec le code suivant. Ici, le nom de fichier sera tiré de l'utilisateur dans lequel le contenu texte sera écrit. L'utilisateur doit taper Ctrl + D après avoir tapé le contenu du fichier.
#! / bac / bash
echo -n "Entrez le nom de fichier pour créer:"
# Prenez le nom de fichier qui sera créé
Lire le nom de fichier
# Lisez le contenu du fichier du terminal
Pendant que vous lisez la ligne
faire
Echo $ line >> $ nom de fichier
fait
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-7: Création d'une boucle infinie
Parfois, il est nécessaire de déclarer une boucle infinie à divers fins de programmation. Créer un fichier bash nommé tandis que 7.shot et tester le code de la boucle infinie. Aucune condition de terminaison n'est définie pour la boucle dans cet exemple. Ce type de boucle est appelé une boucle infinie. Ici, une instruction d'exit est utilisée pour quitter la boucle infinie. Ainsi, cette boucle sera itérée 10 fois, et lorsque la valeur d'itération deviendra égale à 10, l'instruction de sortie s'exécutera pour sortir de la boucle infinie.
#!/ bac / bash
# Initialiser le compteur
n = 1
# Déclarer une boucle infinie
alors que :
faire
printf "La valeur actuelle de n = $ n \ n"
Si [$ n == 3]
alors
écho "bon"
Elif [$ n == 5]
alors
écho "mauvais"
elif [$ n == 7]
alors
écho "moche"
Elif [$ n == 10]
alors
sortie 0
Fi
# Incrément la valeur de n par 1
((n ++))
fait
# Prenez le nom de fichier qui sera créé
Lire le nom de fichier
# Lisez le contenu du fichier du terminal
Pendant que vous lisez la ligne
faire
Echo $ line >> $ nom de fichier
fait
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Exemple-8: Utilisation de style C pendant la boucle
Créer un fichier bash nommé tandis que8.shot avec le code suivant. Ici, la boucle while a été déclarée dans un format de style C qui itérera 5 fois en incrément la valeur de comptoir de 10.
#!/ bac / bash
# Initialiser le compteur
n = 5
# Définir le temps en c-style
tandis que ((n <= 50))
faire
Echo $ n
# Compteur d'incrément par 10
((n = n + 10))
fait
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus.
Conclusion:
Différentes utilisations de la boucle while ont été expliquées dans ce tutoriel en utilisant plusieurs exemples. J'espère que l'utilisateur bash pourra utiliser correctement cette boucle dans son script après avoir pratiqué ces exemples.