Comment utiliser les commandes de boucle Bash For

Comment utiliser les commandes de boucle Bash For

⌛ Reading Time: 4 minutes

L’un des meilleurs moyens de vous simplifier la vie grâce à la technologie, que ce soit au travail ou à la maison, est d’exploiter l’automatisation. L’automatisation des tâches avec des scripts et des tâches chronométrées est un moyen infaillible de vous faire gagner du temps, des maux de tête et des efforts. Cependant, il n’est pas immédiatement clair par où commencer. Ici, nous vous montrons comment utiliser le Bash for loop command, l’un des outils fondamentaux de l’automatisation informatique, pour vous aider à démarrer.

Configuration de votre environnement de test

La première chose dont vous aurez besoin est une instance fonctionnelle de Bash. Il s’agit du shell par défaut dans le terminal sous Linux, Unix, BSD et macOS (sauf si vous exécutez zsh). Vous pouvez vérifier quel shell vous exécutez en tapant la commande suivante dans votre terminal :

Il devrait imprimer le shell que vous utilisez. Ma sortie me dit que j’utilise /bin/bash, c’est exactement ce que je recherche.

Vous aurez également besoin d’un éditeur de texte – quel que soit l’éditeur que vous choisissez, cela devrait convenir. J’utilise Nano dans le terminal, mais vous pouvez tout aussi bien utiliser Vim ou Emacs dans le terminal ou quelque chose comme Gedit, Kate ou Sublime dans l’interface graphique.

Créez un fichier de script dans votre éditeur de texte, soit en utilisant le touch ou en tapant simplement le nom de votre éditeur de texte et le nom du fichier que vous souhaitez créer. Pour moi, je pourrais juste taper nano for-loop-test.sh, et je serais en or.

La boucle Bash For : les bases

La boucle For de Bash indique au shell d’itérer sur une plage spécifiée d’objets et d’exécuter une commande spécifiée sur ces objets. Qu’est-ce que cela signifie? Je pense qu’il peut être plus facile de vous montrer. C’est une boucle For très basique.

Exemple de boucle Bash For 1

La première ligne, for i in 1 2 3 4 5 spécifie une variable “i” et une plage de 1 à 5. Cela pourrait tout aussi bien être une autre séquence de nombres plus complexe, ou cela pourrait être une liste de fichiers entrés ici ou un répertoire.

Le bit suivant est le formatage de base, avec la commande à exécuter dans la partie à onglets. do et done fait partie de la syntaxe de la boucle For et doit y être. Si je devais exécuter ce script, j’obtiendrais une sortie comme celle-ci :

Sortie Bash For Loop 1

Vous pouvez voir comment cette variable entre en jeu. Elle vous aide à identifier chaque objet individuel dans cette plage d’entrée. Pour spécifier des plages de nombres légèrement plus complexes, vous pouvez utiliser des accolades pour les configurer. Pour spécifier la même plage que précédemment, vous pouvez modifier for $i in 1 2 3 4 5 à for $i in {1..5}. La sortie serait la même. Vous pouvez également le faire compter par certains nombres. C’est compter tous les nombres par 3 entre 0 et 27.

Bash pour le nombre de boucles
Bash pour la sortie du nombre de boucles

L’exécution d’une commande particulière sur un ensemble de fichiers est quelque chose de plus courant dans les scripts. Si je voulais utiliser cat sur un tas de fichiers dans un répertoire, je pourrais le faire en modifiant le script comme suit.

Bash pour le répertoire de boucle

Cela imprimerait la sortie de tous les fichiers du “répertoire de test” sur le terminal.

Bash pour la boucle ll

La sortie ressemblerait à ce qui suit dans mon cas.

Bash pour la sortie du répertoire de boucle

Vous pouvez commencer à avoir une idée de la puissance de la boucle For. Ceci ne fait qu’effleurer la surface, et vous pouvez enchaîner plusieurs commandes entre do et done, et vous pouvez également utiliser des instructions conditionnelles pour rendre les commandes plus complexes.

N’oubliez pas de consulter nos autres articles Bash, tels que Trucs et astuces Bash pour travailler plus intelligemment dans le terminal et certains des caractères spéciaux Bash que vous devez connaître.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.