Syntaxe:
car Loop peut être utilisé de deux manières dans Bash. Une façon est «for-in» et une autre façon est la syntaxe de style C. Les deux syntaxes sont présentés ci-dessous.
pour la variable dans la liste
faire
Affirmations
fait
Ou
pour ((expression1; expression2; expression3))
faire
Affirmations
fait
Exemple-1: pour Loop pour lire la variable d'entrée
La liste des chaînes ou du tableau prédéfinis peut être lu facilement en utilisant 'For' Loop qui est affiché dans le tutoriel précédent de For Loop. Comment le contenu d'une variable d'entrée peut être lu en utilisant 'for' Loop est montré dans cet exemple. Créer un fichier nommé 'forloop1.shot'Avec le script suivant. Une valeur d'entrée d'un texte de plusieurs mots sera prise après l'exécution du script. Ici, car Loop est utilisé pour diviser le texte en mots basés sur l'espace blanc et imprimer chaque mot avec la position.
forloop1.shot
#!/ bac / bash
Echo "Entrez un texte de plusieurs mots"
lire du texte
i = 1
pour mot dans $ text
faire
echo "word no- $ i = $ word"
((i = $ i + 1))
fait
Sortir:
Exécutez le script.
$ bash forloop1.shot
Ici, un texte de 5 mots est pris, donc cinq lignes de sortie sont imprimées.
Exemple-2: pour Loop avec une déclaration de pause
La déclaration «Break» est utilisée à l'intérieur »pour que la boucle se termine de la boucle. Créer un fichier nommé 'forloop2.sh ' avec le code suivant. La boucle 'pour' est utilisée ici pour lire une liste de quatre personnes. Deux conditions sont testées ici. Si le nom de la personne est 'Amir ' Et la couleur est 'Bleu' Ensuite, la boucle se terminera après l'impression du nom et de la couleur de la personne. Les valeurs de couleur de la seconde pour la boucle seront imprimées jusqu'à ce que la valeur de la couleur, «bleu», soit adaptée.
forloop2.shot
pour nom dans Watson Micheal Sinha Amir Lily
faire
Si [$ name == 'Amir']
alors
pour la couleur en vert rouge blanc
faire
Si [$ color == "bleu"]
alors
Echo "La couleur préférée de $ nom est $ couleur"
casser
autre
Echo "La couleur actuelle est $ couleur"
Fi
fait
Fi
fait
Sortir:
Exécutez le script.
$ bash forloop2.shot
La sortie suivante apparaîtra après l'exécution du script. Premièrement, deux couleurs, «rouge» et «vert» sont imprimés. Lorsque la valeur «bleue» est apparue, elle a imprimé le nom et la valeur de la couleur de la personne et se terminant de la boucle pour l'instruction «Break».
Exemple-3: pour Loop avec Continuation
La déclaration «Continuer» est utilisée à l'intérieur de la boucle «pour» pour sauter toute déclaration en fonction d'une condition particulière. Créer un fichier nommé 'Forloop3.sh ' avec le script suivant. Ici, une variable nommée $ Cours est utilisé pour attribuer une valeur de texte. La boucle 'pour' est utilisée pour lire la variable, $ cours. La valeur du texte sera divisée en fonction de l'espace et lue par la boucle «pour». Lorsque la valeur, «Oracle» est appariée avec $ COUR Ensuite, il imprimera 'Oracle n'est pas disponible maintenant'. Pour d'autres valeurs, «la classe de $ cours est en cours d'exécution». Le cours qui n'est pas disponible n'exécutera pas la dernière déclaration de la boucle «pour» pour l'instruction Continuer.
forloop3.shot
#!/ bac / sh
Courses = "Java Php Oracle VB.filet"
pour cours dans $ cours
faire
Si [$ cours == 'Oracle']
alors
Echo "$ Course n'est pas disponible maintenant"
continuer
Fi
Echo "La classe de $ cours est en cours d'exécution"
fait
Sortir:
Exécutez le script.
$ bash forloop3.shot
La sortie suivante apparaîtra après l'exécution du script.
Exemple-4: Utilisation de la sortie de la commande comme liste
Toute sortie de commande bash peut être utilisée dans la boucle 'for' en utilisant Backtick ('). Créer un fichier nommé 'Forloop4.sh ' avec le script suivant. Ici, 'ls *.SMS' La commande est utilisée dans la boucle. Cette commande générera une liste du fichier texte à partir du répertoire actuel. La boucle 'pour' itérara chaque nom de fichier à partir de la sortie de commande et le stockera dans la variable $ nom de fichier qui imprimera plus tard. Ici, $ n la variable est utilisée pour afficher le numéro de fichier.
forloop4.shot
n = 1
pour le nom de fichier dans 'LS *.SMS'
faire
Echo "File No- $ n: $ nom de fichier"
((n ++))
fait
Sortir:
Exécutez le script.
$ bash forloop1.shot
La sortie suivante apparaîtra après l'exécution du script.
Exemple-5: pour que Loop lise une gamme
La boucle 'pour' peut être utilisée pour la lecture de la gamme de données. L'exemple suivant Lire une gamme de caractères et recherche chaque caractère existe dans le texte ou non. Créer un fichier nommé 'Forloop5.sh ' et ajouter le script suivant. Ici, la gamme, [A-Z] est utilisée dans «pour». Cela signifie «pour» la boucle itératera 26 fois pour chaque majuscule. Chaque caractère est recherché en texte $ en utilisant la commande 'awk'. Si un personnage trouvé, il stockera la valeur dans $ Résultat. Suivant. $ Le résultat est vérifié pour tout contenu. S'il n'est pas vide, un message imprimera.
forloop5.shot
text = "Bash Scripting Language"
pour c dans a… z
faire
result = 'printf "$ text" | awk "/ $ c /" '
Si [[$ résultat != ""]]
alors
Echo "$ c existe dans le texte"
Fi
fait
Exécutez le script.
$ bash forloop5.shot
Ici, les Alphabets, «B», «L» et «S» trouvés dans le texte, «Bash Scripting Language». Ainsi, trois lignes de sortie sont imprimées.
Exemple-6: pour que Loop lise une plage avec l'incrément
L'exemple montre comment vous pouvez utiliser 'pour' LOOP pour découvrir tous les nombres uniformes dans une plage particulière. Créer un fichier nommé 'Forloop6.sh ' et ajouter le script suivant. Ici, une gamme de [2-20] est utilisée dans la boucle où chaque étape est incrémentée de 2. La boucle iratera 10 fois et imprimera le numéro à chaque étape.
forloop6.shot
Echo "Imprimer tous les nombres même de 1 à 20"
pour n dans 2… 20… 2
faire
echo -n "$ n"
fait
printf "\ ndone \ n"
Exécutez le script.
$ bash forloop6.shot
Tous les nombres pair en 2-20 sont imprimés après l'exécution du script.
Exemple-7: pour que Loop fonctionne avec le fichier
Cet exemple montre comment vous pouvez «Loop pour» pour lire une liste de fichiers spécifiques. Créer un fichier nommé, 'Forloop7.sh ' et ajouter le script suivant. Ici, la boucle est utilisée à la liste de tous les fichiers texte du répertoire actuel et remplacez l'extension de fichier de '.txt 'à'.doc.
forloop7.shot
Echo "Remplacement de l'extension de fichier de tous les fichiers texte vers le fichier doc."
pour le nom de fichier dans *.SMS; faire
mv "$ nom de fichier" "$ nom de fichier%.SMS.doc "
fait
Echo "Le remplacement se fait avec succès"
Sortir:
Créez d'abord un fichier texte si aucun fichier texte n'existe dans le répertoire actuel. Ici, un fichier texte nommé 'newfile.txt 'est créé en utilisant la commande' Cat '.
$ cat> newfile.SMS
Exécutez le script mentionné ci-dessus.
$ bash forloop7.shot
Ensuite, vérifiez l'extension est modifiée ou non en utilisant la commande «LS».
Exemple-8: pour la boucle avec commande de séquence
L'exemple suivant montre comment vous pouvez utiliser 'som«Dans» pour 'Loop pour imprimer une liste de numéro séquentiels. La commande 'SEQ' fonctionne de la même manière que la gamme avec incrément. Créer un fichier nommé 'Forloop8.sh ' et ajouter le script suivant. La boucle imprimera les nombres entre 1 et 30 en omettant trois nombres à chaque étape.
forloop8.shot
Echo "Imprimer les numéros en sautant 3"
pour SQ en $ (SEQ 1 3 30)
faire
Echo "Numéro de séquence: $ sq"
fait
Sortir:
Exécutez le script.
$ bash forloop8.shot
La sortie suivante apparaîtra après l'exécution du script.
Exemple 9: Utilisation d'infini pour Loop
La boucle infinie peut être utilisée pour effectuer des tâches répétitives plusieurs fois jusqu'à ce qu'une condition spécifique apparaisse. Créer un fichier nommé 'Forloop9.sh ' avec le script suivant pour vérifier l'utilisation de la boucle infinie. Ici, aucune condition de terminaison n'est définie dans la boucle. La boucle affiche le menu des 5 listes jusqu'à ce que le numéro 5 soit enfoncé. Il imprimera un message particulier pour d'autres numéros de 1 à 4 et affichera à nouveau le menu.
forloop9.shot
pour (( ; ; ))
faire
Echo "1. Message de réussite d'impression "
Echo "2. Imprimer le message d'information "
Echo "3. Message d'avertissement d'impression "
Echo "4. Imprimer le message d'erreur "
Echo "5. Sortie"
echo -n "Sélectionnez n'importe quel numéro dans [1-5]:"
lire la réponse
cas "$ réponse" dans
1) Echo "terminé avec succès.";;
2) Echo "entrée non valide" ;;
3) ECHO "Votre ordinateur a une batterie faible" ;;
4) Echo "Le mauvais nombre d'arguments est soumis" ;;
5) Exit 0 ;;
*) echo "mauvaise sélection" ;;
ESAC
fait
Exécutez le script.
$ bash forloop9.shot
Ici, 9 est pressé la première fois qui n'existe pas dans la liste. Pour cette entrée, il est imprimé «mauvaise sélection» et affiche à nouveau le menu. Ensuite, 1 est enfoncé et affiche un message, «terminé avec succès». Ensuite, 5 est pressé pour se terminer du programme.
Exemple-10: Utilisation pour Loop sans la liste.
«Pour», la boucle peut être utilisée sans aucune liste ou sortie de tableau ou de commande. Comment vous pouvez utiliser les arguments de la ligne de commande 'Loop pour'. Créer un fichier nommé, 'Forloop10.sh ' et ajouter le script suivant. La boucle itérera en fonction du nombre d'arguments de ligne de commande. $ Counter Variable est utilisé pour trouver chaque étape de la boucle qui est incrémentée de 1 à chaque étape.
forloop10.shot
compteur = 1
pour le texte
faire
Si [$ Counter -Eq 2]
alors
str = "Ma couleur préférée est"
ELIF [$ COMPERS -EQ 3]
alors
str = "j'aime"
autre
str = "j'aime"
Fi
Echo "$ str $ text"
((compteur = $ compteur + 1))
fait
Exécutez le script avec des valeurs d'argument de ligne de commande.
$ bash forloop10.SH Ice-Cream Blue Programming
Le script a imprimé le message «j'aime la glace» lorsque le compteur $ est de 1, «ma couleur préférée est bleu» lorsque le compteur $ est 2 et «J'adore la programmation» lorsque le compteur $ est 3.
Exemple-11: lire des fichiers et des répertoires en utilisant pour Loop
La boucle 'pour' peut être utilisée pour imprimer la liste des fichiers et dossiers du répertoire actuel. Créer un fichier nommé 'forloop11.shot'et ajouter le script suivant. Ici, le symbole «*» est utilisé dans la boucle «pour» pour lire les fichiers et dossiers du répertoire actuel. La boucle a lu chaque fichier ou nom de dossier à chaque étape et l'imprimez dans le terminal avec un espace «onglet».
forloop11.shot
printf "Cindre les fichiers et dossiers du répertoire actuel… \ n \ n"
pour la liste dans *
faire
printf "$ list \ t"
fait
printf "\ n \ ndone \ n"
Exécutez le script.
$ bash forloop11.shot
Les noms de fichiers et de dossiers du répertoire de travail actuel sont imprimés après l'exécution du script.
Exemple-12: Utilisation d'une virgule dans le style C bash pour Loop
La boucle de style C 'pour' est également soutenue dans Bash et cette boucle 'pour' a trois expressions. Ce sont l'initialisation, l'état de terminaison et l'incrément ou la diminution. Mais en utilisant la virgule (,), vous pouvez définir plusieurs variables d'initialisation dans Bash qui est montrée dans cet exemple. Créer un fichier nommé, 'forloop12.sh ' et ajouter le script suivant. Nested 'pour' Loop est utilisé dans ce script. Deux variables d'initialisation, $ équipe, et $ Jersey sont déclarés dans la première boucle «pour». La première boucle sera terminée lorsque $ équipe sera plus de 2. Il n'y a pas de variable d'initialisation dans la boucle intérieure «pour» et la boucle intérieure sera terminée où le $ Jersey est plus de 3. $ Jersey est défini sur 1 après avoir terminé la boucle intérieure d'itération. Ainsi, la boucle extérieure itérera 2 fois et la boucle intérieure itérera 3 fois.
forloop12.shot
pour ((équipe = 1, jersey = 1; équipe <= 2 ; team++))
faire
pour ((; jersey <= 3 ; jersey++))
faire
Echo "Team No- $ Team, Jersey No- $ Jersey"
fait
Jersey = 1
fait
Exécutez le script.
$ bash forloop12.shot
La sortie suivante apparaîtra après l'exécution du script.
De nombreuses utilisations efficaces de la boucle «pour» sont essayées d'expliquer dans ce tutoriel. Après avoir pratiqué les exemples ci-dessus, j'espère que les lecteurs auront une connaissance claire de 'pour' Loop et 0able pour utiliser correctement cette boucle dans le script bash.