Ainsi, apprendre des exemples de bash peut vous aider à améliorer vos compétences en création de scripts. Donc, dans ce tutoriel, nous inclurons 10 exemples de boucle de bash cool et impressionnants que vous pouvez essayer d'améliorer vos compétences de script.
10 exemples de boucle de bash cool et impressionnants
Dans cette section, nous expliquerons divers exemples et les approches que nous avons utilisées dans les boucles.
Commande SEQ avec boucle en bash
Vous pouvez utiliser la commande SEQ dans la boucle pour créer la séquence de nombres. Par exemple, vous avez un script bash «fichier.sh ”qui contient le code suivant:
#!/ bac / bash
pour A en $ (SEQ 5 2 25)
faire
Echo "Les numéros de $ a sont"
fait
Vous obtiendrez le résultat suivant après avoir exécuté le script dans le terminal:
./Déposer.shot
Renommer les fichiers à l'aide de la boucle
À l'aide d'un script bash, vous pouvez utiliser les boucles pour renommer plusieurs fichiers. Par exemple, vous avez plusieurs .fichiers txt et souhaiter ajouter la date en cours avec le nom. Voici donc l'exemple de script que vous pouvez utiliser:
#!/ bac / bash
pour x dans $ (ls *.SMS); faire
MV $ x $ (Basename $ x .txt) _ $ (date +% d% m).SMS
fait
Maintenant, vous pouvez exécuter le script, et cela changera le nom de tous .Fichiers TXT en ajoutant la date en cours:
./Mon fichier.shot
De même, vous pouvez modifier les extensions d'un fichier via un seul script. Alors changeons le .Extension TXT dans .sh à travers le script suivant:
#!/ bac / bash
pour x in *.SMS; faire
mv - "$ x" "$ x%.SMS.sh "
fait
Après avoir exécuté le script dans le terminal, vous obtiendrez le .sh plutôt que .Fichiers TXT:
./Mon fichier.shot
Infini pour la boucle en bash
Lorsqu'aucune condition de terminaison n'est définie dans la boucle, elle est appelée une boucle infinie. Dans cet exemple de boucle bash, nous examinerons l'infini pour la boucle en bash. L'infini suivant pour la boucle est défini par un double point-point (;;) et ne contient aucune pièce initiale, action ou terminaison.
Le script ci-dessous se poursuivra jusqu'à ce que vous appuyez sur Ctrl + C ou tapez «quitter» comme entrée. Ce script imprimera chaque numéro de 10 à 50 qui est donné en entrée. Sinon, il imprimera «le numéro est hors de portée."
#!/ bac / bash
#boucle infinie
pour (( ; ; ))
faire
Echo "Entrez un nombre entre 10 et 50"
lire n
Si [$ n == "quit"]
alors
écho "terminé"
sortie 0
Fi
si (($ n < 10 || $n > 50))
alors
écho "le nombre est hors de portée"
autre
écho "le nombre est $ n"
Fi
fait
Nous avons donné 45 et 23 entrées valides sur le script ci-dessus. Après cela, nous imprimons 2 comme entrée qui indique dans la sortie que «le nombre est hors de portée.«Après cela, pour fermer le script, nous tapons quit. Ici, vous pouvez également appuyer sur Ctrl + C pour quitter la boucle infinie.
Trois boucle d'expression en bash
Il est connu du nom de la boucle à trois expressions qu'il comprend trois expressions, également appelées expressions de contrôle. La première expression (EXP1) est l'initialiseur, la deuxième expression (EXP2) est le test ou la condition de boucle, et la troisième expression (EXP3) est l'expression / étape de comptage. Exécutons une boucle à trois expressions en bash:
#!/ bac / bash
pour ((n = 5; n> = 1; n--))
faire
Echo "Book $ n"
fait
En exécutant le script ci-dessus, vous obtiendrez la sortie suivante.
Boucle avec plusieurs conditions
Nous avons utilisé la boucle ouverte avec plusieurs conditions dans l'exemple de boucle de bash suivante. Dans ce script, nous avons pris «M» et «N», deux variables dont les valeurs sont respectivement de 20 et 10, et nous avons maintenu la limite de 15. Ici, nous mettons ensemble les conditions «M» et «N» dans la boucle, dans laquelle la boucle fonctionnera jusqu'à ce que la valeur de «M» soit inférieure à la limite et «n» est plus que la limite.
#!/ bac / bash
limite = 15
m = 20
n = 10
Jusqu'à [[$ m -lt $ limite || $ n -gt $ limite]];
faire
Echo "Si m = $ m alors n = $ n"
((m--))
((n ++))
fait
Vous pouvez voir que l'exécution du script ci-dessus fonctionnera jusqu'à ce que les valeurs de «M» et «N» arrivent au même niveau.
Lire le fichier en bash
Dans Bash, vous pouvez lire le contenu d'un fichier de plusieurs manières. Dans cet exemple de boucle Bash, nous lirons le contenu du fichier via le nom de fichier. Nous pouvons utiliser le script suivant pour lire le fichier dans Bash:
#!/ bac / bash
Echo "Le contenu du fichier entré est:"
alors que
ligne de lecture
faire
Echo $ line
fait <~Documents/Linuxhint.txt
Après avoir exécuté le script ci-dessus, vous pouvez lire le contenu complet du fichier entré.
Écriture dans un fichier
Vous pouvez utiliser les boucles du script pour modifier un fichier directement à partir du terminal. Par exemple, si nous avons un fichier txt «Exemple.txt »et nous voulons additionner certaines informations, alors nous pouvons utiliser le script suivant:
Si vous exécutez le script ci-dessus, il vous demandera de saisir les détails:
Une fois que vous avez saisi les détails, veuillez Ctrl + D pour enregistrer le fichier et Ctrl + Z pour terminer le processus avec succès.
Break and Continuer la boucle de déclaration en bash
En bash, vous pouvez continuer votre déclaration de boucle après la pause. L'instruction BREAK quitte la boucle puis passe le contrôle à la déclaration donnée suivante. L'itération numéro deux commence après que l'itération actuelle soit ignorée avec la même déclaration de poursuite.
#!/ bac / bash
num = 16
jusqu'à faux
faire
((num--))
Si [[$ num -eq 13]]
alors
continuer
elif [[$ num -le 4]]
alors
casser
Fi
echo "Linuxhint = $ num"
fait
Dans le script bash suivant, vous pouvez voir que lorsque le «num» est égal à 13, il saute le reste du corps de la boucle et passe à l'itération suivante. De même, la boucle se casse lorsque «num» est inférieur ou égal à 4.
Le script ci-dessus montre que la boucle commence à 15, se casse à 13 ans et se poursuit jusqu'à 5.
Calcul d'une moyenne en bash
Vous pouvez calculer la moyenne en exécutant le script dans une boucle bash. En cela, l'utilisateur peut calculer la moyenne des nombres dans une plage définie. Le script suivant calcule la moyenne des entrées fournies par l'utilisateur.
#!/ bac / bash
marks = "0"
Moyen = "0"
Sum = "0"
Num = "0"
tandis que c'est vrai; faire
Echo -n "Entrez vos marques pour calculer la moyenne ou appuyez sur 'Q' pour abandonner / finir:"; lire des marques;
si ["$ marks" = "q"]; alors
Echo "Les marques moyennes sont: $ moyen"
casser
Elif ["$ marks" -lt 50] || ["$ marks" -gt 100]; alors
Echo "Les marques doivent être comprises entre 50 et 100. Veuillez saisir vos marques: "
autre
Sum = $ (($ sum + $ marks))
Num = $ (($ num + 1))
Moyen = $ (($ sum / $ num))
Fi
fait
Si l'entrée n'est pas dans la plage, un message est imprimé qui «Veuillez saisir vos marques."Lorsque l'utilisateur appuie sur« Q »après avoir entré toutes les marques, le script calcule la moyenne approximative de tous les nombres entrés.
Lorsque le script ci-dessus est exécuté, votre sortie sera quelque chose comme ça.
Lisez les arguments en ligne de commande dans Bash
Dans Bash, vous pouvez lire des arguments de ligne de commande unique à l'aide de boucles. Le script imprime les valeurs d'argument formatées. Nous exécutons des arguments de ligne de commande en bash en utilisant une boucle de temps dans le script suivant. Grâce à cela, vous imprimerez la valeur passant l'option Valeur de l'argument valide à l'aide d'une seule commande.
#!/ bac / bash
tandis que les getopts n: f: m: opt
faire
cas "$ opt" dans
N) name = $ optarg ;;
F) Fathername = $ optarg ;;
M) MotherName = $ optarg ;;
*) Echo "invalide"
sortie 1 ;;
ESAC
fait
printf "Nom: $ Name \ nfather Nom: $ Fathername \ nmother Nom: $ MotherName \ n"
Ainsi, vous pouvez imprimer les valeurs d'argument formatées à la sortie en exécutant le script ci-dessus dans un bash.
Emballer
C'était donc la brève information sur les 10 exemples de boucle de bash cool et impressionnants que vous pouvez apprendre. Nous avons utilisé différents types de boucles pour créer facilement le script interactif. De plus, nous avons également expliqué les approches de base utilisées dans les exemples ci-dessus. Si vous avez des détails détaillés sur les boucles de Bash, veuillez visiter notre site officiel pour en savoir plus.