Bash en boucle avec des exemples

Bash en boucle avec des exemples

UN alors que Loop est une structure de contrôle fondamentale dans les scripts bash qui vous permet d'exécuter un bloc de code à plusieurs reprises tant qu'une certaine condition est vraie. La boucle while est un outil essentiel dans la boîte à outils de n'importe quel programmeur de bash et est utilisé pour automatiser les tâches, effectuer des opérations sur les collections de données et implémenter des algorithmes complexes.

Dans les scripts bash, tandis que les boucles peuvent être utilisées pour effectuer une grande variété de tâches, telles que la lecture et le traitement des fichiers, la génération de rapports, l'interrogation de bases de données et l'interaction avec les utilisateurs. Alors que les boucles sont également souvent utilisées en combinaison avec d'autres structures de contrôle de bash, telles que des déclarations conditionnelles (si, elif, else) et d'autres boucles (pour, jusqu'à) pour implémenter des algorithmes et scripts complexes.

Dans ce tutoriel, nous explorerons la syntaxe de base de While Boops in Bash, et examinerons comment ils peuvent être utilisés pour automatiser les tâches et mettre en œuvre des algorithmes complexes. Nous couvrirons également certains cas d'utilisation courants et les meilleures pratiques pour travailler avec les boucles, et fournirons des exemples de comment utiliser pendant les boucles pour résoudre des problèmes réels.

Syntaxe

Une boucle de temps est un type de boucle en bash qui vous permet d'exécuter à plusieurs reprises un ensemble de commandes tant qu'une certaine condition est vraie. La boucle de syntaxe pendant une fois est la suivante:

Alors que la condition fait des commandes # à exécuter
1234tandis que ConditionDo # commandes à exécuteron

Dans ce tutoriel, nous couvrirons les bases de l'utilisation en boucles en bash.

Exemple de base

Commençons par un exemple simple. Supposons que vous souhaitiez compter de 1 à 5 et imprimer chaque numéro. Vous pouvez utiliser une boucle de temps pour le faire, comme ainsi:

count = 1 while [$ count -le 5] faire echo $ count count = $ ((count + 1)) fait
123456Count = 1 tandis [$ Count -le 5] faire echo $ count compter = $ ((count + 1)) fait

Dans cet exemple, nous avons initialisé une variable appelée Count to 1, puis nous avons utilisé une boucle pour imprimer à plusieurs reprises la valeur du nombre tant qu'elle est inférieure ou égale à 5. À l'intérieur de la boucle, nous imprimons la valeur du nombre à l'aide de la commande echo, puis incrémentez la valeur du nombre de 1 en utilisant la syntaxe ((comptage + 1)).

En utilisant une condition

La condition de condition dans un temps peut être n'importe quelle expression de bash valide. Par exemple, vous pouvez utiliser une condition qui teste la valeur d'une variable, comme ainsi:

Réponse = "non" pendant ["$ réponse" != "oui"] lire -p "Voulez-vous continuer? (oui / non) "Réponse faite
12345Réponse = "non" pendant ["$ réponse" != "oui"] lire -p "Voulez-vous continuer? (oui / non) "ResponseDone

Dans cet exemple, nous avons initialisé une variable appelée réponse à «non», puis nous avons utilisé une boucle pour inciter à plusieurs reprises l'utilisateur à saisir «oui» ou «non» jusqu'à ce que l'utilisateur entre «oui». À l'intérieur de la boucle, nous utilisons la commande de lecture pour lire une ligne d'entrée de l'utilisateur, puis tester si la valeur de la réponse est «oui» en utilisant la [$ réponse » != «Oui»] Syntaxe.

Utilisation de l'instruction BREAK

Vous pouvez utiliser l'instruction BREAK pour quitter une boucle de temps prématurément. Par exemple:

compter = 1 tandis que [$ count -le 10] faire si [$ count -eq 5] puis brisez fi echo $ count count = $ ((count + 1)) fait
12345678910Count = 1 pendant [$ Count -le 10] faire si [$ COUNT -EQ 5] puis cassez Fi echo $ Count Count = $ ((Count + 1)) fait

Dans cet exemple, nous avons utilisé une boucle de temps pour compter de 1 à 10 et imprimer chaque numéro. Cependant, nous avons également inclus une instruction IF à l'intérieur de la boucle qui teste si la valeur du nombre est égale à 5. Si c'est le cas, nous utilisons la déclaration de pause pour quitter la boucle. En conséquence, cette boucle n'imprimera que les numéros 1 à 4.

Utilisation de l'instruction Continuer

Vous pouvez utiliser l'instruction CONSTANT pour passer à la prochaine itération d'une boucle de temps. Par exemple:

compter = 1 tandis que [$ count -le 5] faire si [$ count -eq 3] alors count = $ ((count + 1)) continue
1234567891011Count = 1 pendant [$ count -le 5] faire si [$ count -eq 3] puis comte = $ ((count + 1)) continue

Dans cet exemple, nous avons utilisé une boucle de temps pour compter de 1 à 5 et imprimer chaque numéro. Cependant, nous avons également inclus une instruction IF à l'intérieur de la boucle qui teste si la valeur du nombre est égale à 3. Si c'est le cas, nous utilisons l'instruction Continuer pour passer à la prochaine itération de la boucle. En conséquence, cette boucle imprimera les numéros 1, 2, 4 et 5, mais sautera le numéro 3.

Lire des fichiers ligne par ligne

Un cas d'utilisation courant pour les boucles dans Bash est la lecture et le traitement des fichiers. Vous pouvez utiliser une boucle de temps pour lire chaque ligne d'un fichier et effectuer une opération dessus. Voici un exemple:

#!/ bin / bash filename = "Exemple.txt "Pendant que la ligne de lecture fait echo" Ligne de traitement: $ line "# Ajoutez votre code pour traiter la ligne ici terminée < $filename
123456789#!/ bin / bash filename = "Exemple.txt "Pendant que lisez linedo echo" Ligne de traitement: $ line "# Ajoutez votre code pour traiter la ligne heredone < $filename

Dans cet exemple, nous définissons un nom de fichier variable qui contient le nom du fichier que nous voulons lire. Nous ouvrons ensuite une boucle de temps en utilisant la commande de lecture. il lira une ligne à partir du fichier et le traitera avec des instructions données.

Imbriqué

Vous pouvez également nicher pendant les boucles les unes dans les autres pour créer des boucles plus complexes. Par exemple:

x = 1 tandis que [$ x -le 3] do y = 1 tandis que [$ y -le 3] fait écho "($ x, $ y)" y = $ ((y + 1)) fait x = $ (((((y + 1)) fait x = $ (((( x + 1)) fait
1234567891011x = 1 pendant [$ x -le 3] faire y = 1 tandis que [$ y -le 3] fait écho "($ x, $ y)" y = $ ((y + 1)) fait x = $ ((x +1)) fait

Dans cet exemple, nous avons utilisé une boucle de temps pour compter de 1 à 3 et imprimer chaque numéro, puis imbriquer un autre en boucle pour compter de 1 à 3 et imprimer chaque numéro. En conséquence, cette boucle imprimera la sortie suivante:

Sortie (1, 1) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 3) 

Conclusion

tandis que les boucles sont un outil puissant de bash qui vous permette de répéter les commandes tant qu'une certaine condition est vraie. En maîtrisant les bases des boucles, vous pouvez créer des scripts plus complexes et automatiser les tâches communes.