Ce tutoriel examinera les boucles, un concept fondamental dans les scripts et la programmation en général. Nous nous concentrerons spécifiquement sur le fonctionnement des boucles.
Pour la structure de base de Loop
Avant de scripter des exemples de boucles, discutons de la structure. Pour les boucles, adoptez la syntaxe générale:
pour- dans
faire
fait
Vous pouvez passer la liste d'éléments tels qu'un tableau, une série de littéraux de chaîne (séparés par des espaces) ou une gamme de nombres.
Voyons maintenant quelques exemples et illustrons comment fonctionner pour les boucles.
Exemple 1
Considérez l'exemple ci-dessous. Nous verbons sur une liste de valeurs de chaîne et imprimons la chaîne actuelle dans la boucle.
#!/ usr / bin / zsh
pour boire dans l'eau de thé à thé
faire
Echo "Drink: $ drink"
fait
Une fois que vous avez exécuté le script, vous devriez voir chaque élément de la liste imprimée, comme indiqué dans l'exemple ci-dessous:
$ ./pour.shot
Bois de l'eau
Boire du thé
Boire du café
Boire du vin
Exemple 2
Vous pouvez également spécifier la valeur de liste dans la boucle pour une séquence de nombres. Vous le faites en définissant les valeurs de démarrage et de fin. La syntaxe est ci-dessous:
Début Fin
Prenez l'exemple de la boucle ci-dessous pour boucler les valeurs 10 fois.
#!/ usr / bin / zsh
pour je dans 1… 10
faire
Echo "Numéro: $ i"
fait
Vous devriez obtenir tous les chiffres entre 1 et 10 imprimés au terminal.
Numéro 1
Numéro 2
…
Numéro: 8
Numéro: 9
Numéro: 10
Exemple 3
Dans certains cas, lorsque vous utilisez la plage de nombres, vous devez ignorer les valeurs par un intervalle spécifique. Par exemple, pour imprimer les nombres pair entre 10 et 20, vous devrez utiliser un intervalle de 2.
Vous pouvez le faire en spécifiant l'incrément comme troisième argument des gammes de nombres.
La syntaxe est:
Start… fin… incrément
Vous trouverez ci-dessous un exemple de code:
#!/ usr / bin / zsh
pour je dans 10… 20… 2
faire
Echo "Numéro: $ i"
fait
L'exemple de code ci-dessus devrait imprimer tous les nombres même entre 10 et 20. Vous trouverez ci-dessous un exemple de sortie:
Numéro: 10
Numéro: 12
…
Numéro: 20
Exemple 4
Un autre cas d'utilisation courant pour une boucle pour itérater sur un tableau d'articles. Considérez l'exemple ci-dessous:
#!/ usr / bin / zsh
Bases de données = ('MySQL' 'PostgreSQL' 'MongoDB' 'redis' 'Fauna' 'Cockroach DB')
pour db dans "$ bases de données [@]";
Echo "Base de données: $ db"
fait
La boucle ci-dessus iratera chaque élément dans le tableau et l'imprimera.
Base de données: mysql
Base de données: PostgreSQL
…
Base de données: faune
Base de données: Cockroach DB
Création de rupture et de poursuite
Vous pouvez également utiliser les mots clés Break and Continuer pour contrôler le flux de la boucle à l'intérieur d'un script Zsh.
Commençons par le mot-clé Break.
Break Mot-Key
Vous pouvez utiliser le mot-clé Break pour terminer l'écoulement de la boucle de courant et passer le contrôle au bloc suivant. L'utilisation principale est de terminer le flux de boucle si une condition spécifique est vraie.
Par exemple:
#!/ usr / bin / zsh
Pour DB dans MySQL Postgresql MongoDB Redis Fauna Cockroach;
si [["$ db" == 'mongodb']]; alors
casser
Fi
Echo "Base de données: $ db"
fait
Dans l'exemple ci-dessus, nous bouclez sur l'élément et cassons le flux de boucle si l'élément actuel est mongodb.
Voici un exemple de sortie:
Base de données: mysql
Base de données: PostgreSQL
Continuer le mot-clé
D'un autre côté, le mot clé Continuer quitte l'itération de la boucle actuelle et passe à l'itération suivante.
Par exemple:
#!/ usr / bin / zsh
pour i dans 1… 10; faire
si [["$ i" == '5']]; alors
continuer
Fi
Echo "Numéro: $ i"
fait
Une fois la boucle à la 5e itération, elle sautera et sautera à la valeur suivante de la plage. Une telle fonctionnalité conduira à la 5e valeur qui n'est pas imprimée.
Conclusion
Ce tutoriel a discuté de la façon de mettre en œuvre pour les boucles dans un script ZSH. Il est bon de noter que ZSH est basé sur Bash; Par conséquent, la fonctionnalité de boucle créée pour Bash fonctionnera également pour Zsh.