Comment utiliser BASH pour Loop



Essayez Notre Instrument Pour Éliminer Les Problèmes

L'une des astuces les plus élémentaires lors de la création de scripts bash consiste à créer une boucle afin de pouvoir exécuter automatiquement une tâche donnée plusieurs fois. Finalement, la boucle atteindra une condition de test prédéterminée et cessera soudainement de s'exécuter. Des boucles comme celles-ci fonctionneront parfaitement dans bash sous Linux et macOS ainsi que le shell bash dans Windows 10 et même les différents shells de FreeBSD. Naturellement, vous pouvez écrire la commande que vous préférez dans n’importe quelle boucle et poursuivre n’importe quel processus pendant toute la durée de votre choix. Bien que nous écrivions des boucles extrêmement simples, vous pouvez utiliser ces compétences pour créer tous les types de scripts que vous souhaitez.



Il existe de nombreuses façons de commencer à écrire un script, mais pour cette discussion, nous supposerons que vous avez ouvert une invite de commande soit en recherchant le terminal sur le tableau de bord, en cliquant dessus dans les menus KDE, MATE, LX ou Whisker ou en maintenant les touches Ctrl, Alt et T enfoncées en même temps. Bien que nous parlions de vi / vim et nano en tant qu'éditeurs, la question de savoir quel éditeur utiliser est assez personnelle et vous pouvez travailler avec tout ce avec quoi vous vous sentez à l'aise.



Méthode 1: la boucle jusqu'à

La boucle la plus élémentaire de bash est peut-être la boucle jusqu'à. Il continuera à exécuter des commandes jusqu'à ce que la condition de test que vous avez définie devienne vraie. Nous supposerons que vous avez utilisé nano ou vi pour ouvrir un fichier inexistant appelé till.sh et que vous êtes prêt à y insérer du nouveau texte. Nous allons simplement créer quelque chose qui compte jusqu'à 20 dans votre terminal pour que cela reste facile au début.



Commencez par saisir ce qui suit:

#! / bin / bash

n = 0



jusqu'au [$ n -gt 20]

faire

écho $ n

((n ++))

terminé

Si vous utilisez nano, enregistrez-le en maintenant la touche Ctrl enfoncée, puis en appuyant sur O et enfin sur X pour quitter. Les utilisateurs de vi voudront pousser escape puis taper: wq pour sauvegarder et quitter.

Type suivant chmod + x jusqu'à Boucle à l'invite pour le rendre exécutable, puis tapez ./untilLoop pour l'exécuter. Une fois qu'elle s'exécute, la boucle continuera à imprimer de nouveaux nombres sur votre terminal jusqu'à ce que la variable n atteigne 20.

Au fait, la première ligne indique à votre environnement quel shell charger lorsque vous travaillez avec ces scripts. Certains programmeurs conseillent de n'utiliser que #! / Bin / sh pour s'assurer que votre script adhère à certaines normes POSIX, mais ces scripts simples ne devraient pas avoir de problème pour s'exécuter sur la grande majorité des systèmes modernes.

Méthode 2: la boucle for

Une boucle for examine chaque élément d'une liste donnée, puis exécute un ensemble donné de commandes sur cette liste. Nous allons en créer un qui imprime certains noms de système d'exploitation, mais gardez à l'esprit que vous pouvez faire n'importe quoi avec cela si vous le souhaitez.

Tapez soit nano forLoop ou nous forLoop à l'invite de commande et commencez à entrer ce script suivant. Les utilisateurs de vi devront passer en mode insertion avant de le faire.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix’

pour unix dans $ unices

faire

echo $ unix

terminé

Enregistrez à nouveau le fichier en utilisant la méthode Ctrl + O puis Ctrl + X dans nano ou la méthode Esc puis: wq dans vi avant d'émettre la commande chmod + x forLoop pour le rendre exécutable. Une fois que vous avez, exécutez-le en tapant ./forLoop à l'invite. La boucle for force la commande echo à travailler tour à tour sur chacun des éléments de la variable unices. Vous pouvez, une fois de plus, remplacer cette liste par n'importe quel argument et remplacer echo par n'importe quelle commande pour automatiser les processus longs.

Méthode 3: la boucle while

Commencez à modifier un troisième fichier appelé whileLoop en utilisant nano, vi ou tout autre éditeur que vous souhaitez utiliser. Si vous préférez utiliser un éditeur de texte graphique, vous pouvez également le faire avec l'un de ces projets à condition de vous assurer de placer le fichier dans le même répertoire que celui dans lequel vous travaillez depuis l'invite de commande. .

Dans ce fichier, vous voudrez ajouter les lignes:

#! / bin / bash

n = 0

tandis que [$ n -le 20]

faire

écho $ n

((n ++))

terminé

Enregistrez le fichier de la même manière que vous avez enregistré les autres, puis quittez votre éditeur de texte. Une fois que vous êtes sorti, exécutez la commande chmod + x whileLoop pour vous permettre de l'exécuter puis de l'exécuter ./ whileLoop pour l'exécuter. Vous verrez le même résultat que celui qui est sorti du script untilLoop de la première méthode car il compte de 0 à 20 en plus que probablement une fraction de seconde.

C'est une excellente démonstration du fait qu'il existe plusieurs façons de faire les choses chaque fois que vous travaillez avec des boucles de cette manière. Bien qu'il n'y ait techniquement pas de mauvaise façon de le faire, vous rencontrerez probablement des auteurs de scripts qui prétendent que vous devriez écrire vos scripts plus près de la façon dont le langage de programmation C fait les choses ou bien d'autres pourraient suggérer que vous ne devriez pas le faire. Honnêtement, il existe probablement de nombreuses façons correctes de résoudre un problème.

N'hésitez pas à supprimer vos scripts une fois que vous avez fini de vous entraîner avec eux.

3 minutes de lecture