Présentation de la boucle dans les scripts shell

Pour la boucle dans Shell Scripting, disons que si nous voulons effectuer une tâche ou une opération de manière répétitive, nous pouvons écrire le même code autant de fois, ce qui est une tâche longue et peu efficace. Afin d'éviter ces types de scénarios, nous pouvons utiliser des boucles comme for loop dans un langage de programmation. Ainsi, la boucle for est utilisée pour effectuer une tâche particulière comme l'ajout / la multiplication ou toute autre opération pendant un certain nombre de fois jusqu'à ce que la condition de terminaison soit remplie dans n'importe quel système d'exploitation. Nous n'avons pas besoin d'écrire le même code encore et encore en utilisant for loop.

Syntaxe de for loop

La syntaxe de la boucle for dans les scripts shell peut être représentée de différentes manières comme ci-dessous:

1. Première méthode de syntaxe

for var in list
do
command1
command2
done

Dans l'exemple ci-dessus, nous avons des mots clés prédéfinis ou des mots clés intégrés tels que for, do, done et in. Alors que list est une liste de variables ou une liste de mots ou une liste de nombres et var est un nom de variable au cours de cette itération. Si aucune liste n'est fournie, bash prendra un paramètre positionnel que nous avons passé dans le shell. Dans la boucle for ci-dessus, il exécutera toutes les commandes qui se trouvent entre do et done pendant n nombre de fois où n est la taille de la liste. Par exemple, si la taille de la liste est de 5 avec des nombres de 1 à 5, lors de la première itération, 1 sera stocké dans var et les opérations sur var seront effectuées par le corps de la boucle for où se trouvent les commandes.

2. Deuxième méthode de syntaxe

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

Dans la syntaxe ci-dessus, si nous observons cette syntaxe est similaire à la syntaxe de la boucle for dans le langage de programmation c. Dans la boucle for, il y a trois expressions où la première est pour l'initialisation, la seconde pour la vérification conditionnelle et la troisième pour la mise à jour de l'itérateur. L'exécution ci-dessus pour la boucle commencera comme ceci, avant de démarrer la première itération expr1 est exécutée, ce qui signifie que l'initialisation sera effectuée après que les opérations / commandes entre do et done seront exécutées de manière itérative jusqu'à ce que expr2 soit évalué à true et après chaque itération expr3 met à jour le valeur de l'itérateur (compteur) afin que les opérations soient effectuées sur l'élément ou la valeur suivant dans la liste ou le tableau ou la chaîne.

Diagramme de flux - Pour boucle dans Shell Scripting

Considérons un exemple de boucle for et discutons de son flux à l'aide du diagramme de flux.

for filename in *.dat
do
echo cp $fname orig_$fname
done

Dans le diagramme ci-dessus, nous expliquons le flux de la boucle for qui itère sur une liste de noms de fichiers et il y a quatre étapes dans le flux telles que le flux de processus, la valeur variable, le processus et la sortie standard. Dans le flux de processus, il explique le début de la boucle for, la valeur de l'itérateur, la vérification de la condition si elle est satisfaite, puis exécute le processus sinon termine le processus. En valeur variable, itération par itération, nous y obtiendrons un nom de fichier tel que textfile.dat et pendant le processus, il exécute l'instruction echo où il affiche l'instruction copy avec un ancien nom de fichier et un nouveau nom de fichier sur stdout. Donc, c'est le flux de la boucle for qui itère sur la liste des noms de fichiers d'entrée.

Production:

Comment fonctionne Loop dans Shell Scripting?

Le script for loop in shell fonctionne de la manière suivante chaque fois que shell voit le mot-clé car il sait qu'il doit répéter un ensemble de commandes une fois pour chaque élément d'une liste. Chaque fois que l'itération s'exécute, un élément de la liste est affecté à la variable var et la var est traitée via la liste des commandes présentes dans la boucle entre faire et terminé sont exécutées avant de passer à l'élément suivant dans la liste ou à l'itération suivante. Nous accèderons à la valeur dans le var en utilisant $ avant la variable afin que lorsque le script shell le traite, la valeur dans le var se substitue à sa place.

Exemple:

for filename in *.txt
do
ls filename
done

Dans le programme ci-dessus, nous transmettons une liste de fichiers .txt en entrée à la boucle for et le nom de la variable est un nom de fichier dans lequel le fichier .txt stockera puis traiter le nom de fichier en répertoriant le fichier .txt dans le nom de fichier, puis le même processus se répétera jusqu'à ce que tout le traitement des fichiers .txt soit terminé.

Production:

Exemples de boucle

Jusqu'à présent, nous avons discuté du fonctionnement de la boucle for dans le script shell et les différentes syntaxes. Maintenant, voyons quelques exemples et passons par eux et expliquons chaque exemple de ce qu'il fait

Exemple 1

Laissez-nous une liste de valeurs statiques en entrée pour la boucle for et comment elle s'exécutera, voir ci-dessous:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

Dans l'exemple ci-dessus, nous ne devons pas transmettre de valeurs d'entrée avec, car le délimiteur si nous réussissons, il considérera que le délimiteur est également une valeur comme "ven", et nous ne devons pas lister les valeurs à l'aide de guillemets doubles "si nous les transmettons avec des guillemets doubles, Le script shell traitera toutes les valeurs comme une valeur unique.

Un exemple o / p: La journée d'aujourd'hui est: ven jeu mer mer mar lun (si nous utilisons des guillemets doubles)

Production:

Exemple # 2

Voyons maintenant un autre exemple où nous utilisons in for avant la liste d'entrée comme ci-dessous:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

Dans l'exemple ci-dessus, nous faisons la même exécution de la boucle for que dans l'exemple ci-dessus, mais au lieu de la liste d'entrée, la lecture se fera à l'aide du mot clé "in". Dans les scripts shell, chaque variable doit être représentée entre guillemets, mais il y a quelques exceptions, comme si nous utilisons des guillemets doubles dans $ Month ci-dessus pour la ligne de boucle, elle traitera les mots entiers comme une seule ligne. Nous devons donc en prendre soin.

Production:

Exemple # 3

Maintenant, nous allons écrire pour la boucle sans liste d'entrée dans l'instruction for loop à la place, elle prendra les entrées des arguments positionnels dans le script et l'exemple comme ci-dessous:

Laissez-nous shell nom du script comme sample.sh et son contenu comme ci-dessous:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

Dans l'exemple ci-dessus, l'entrée de la boucle for est transmise à partir de la liste des arguments fournis au script afin que pour chaque argument, il traite toutes les commandes et affiche la sortie jusqu'à ce que tous les arguments soient itérés.

Production:

Conclusion - Pour la boucle dans Shell Scripting

Enfin, il s'agit de boucle dans les scripts shell. Nous avons discuté de ce qu'est la boucle dans le script shell, de la syntaxe de la boucle, de son organigramme expliquant le flux de la boucle for, du fonctionnement de la boucle for shell et des exemples de la boucle for dans le script shell. J'espère que vous aurez une bonne compréhension de la boucle, comment l'utiliser dans un script shell et l'exécuter après avoir lu cet article.

Articles recommandés

Ceci est un guide de la boucle For dans Shell Scripting. Ici, nous discutons de l'introduction, Comment fonctionne la boucle dans les scripts shell, Diagramme de flux et Exemple de boucle for. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Boucles en R
  2. Spark SQL Dataframe
  3. Base de données multidimensionnelle
  4. Avantages de la visualisation des données

Catégorie: