Maison >Tutoriel système >Linux >Linux Bash Shell-Petite boucle, grande utilisation
Il s'agit d'une version très peu originale : pourquoi exécuter le même code encore et encore dans un script shell alors que vous pouvez utiliser une boucle for pour exécuter le même code ?
Le bouclage est une compétence innée qui facilite votre travail et vous aide à automatiser facilement les tâches répétitives.
Imaginez si vous devez mettre à jour une série de chiffres ou de texte, au lieu de le faire manuellement, laissez le système le faire pour vous. C’est le pouvoir de la circulation et les bienfaits qu’elle vous apporte.
Les boucles en tant que fonctionnalité sont disponibles dans presque tous les langages de programmation. Bash pour Linux ne fait pas exception.
Cet article est un guide qui explique comment utiliser les boucles for dans les scripts shell.
L'utilisation des boucles for dans les scripts shell est assez simple et vous pouvez manipuler la structure pour atteindre différents objectifs.
La structure de base est la suivante :
for item in [LIST] do [COMMANDS] done
À l'aide de boucles, vous pouvez basculer entre les valeurs numériques et caractères selon le temps nécessaire.
Voici la structure d'une boucle for dans un script shell :
for VARIABLE in 1 2 3 4 5 .. N do command1 command2 commandN done
Vous pouvez définir le nombre d'itérations sur la première ligne. De cette façon, vous mentionnerez la valeur de départ et la valeur de fin.
Le nombre d'itérations est déterminé par la valeur que vous spécifiez et le code après l'instruction do est la valeur de boucle générée.
Ouvrez un terminal Linux et commencez à écrire du code.
L'éditeur de texte est utilisé pour stocker les scripts shell qui impriment les résultats souhaités une fois exécutés. À des fins d'illustration, les commandes de ce guide sont écrites dans l'éditeur de texte nano.
Entrez nano dans la ligne de commande du terminal pour ouvrir un éditeur de texte, puis entrez le nom du script shell.
linuxmi@linuxmi:~/www.linuxmi.com$ nano LinuxMi.com.sh
Vous pouvez changer le nom du script shell comme vous le souhaitez. L'extension est sh car vous allez stocker un script shell.
Dans cette section, les codes suivants montreront comment imprimer des valeurs entières de différentes manières. Pour imprimer des entiers à l'aide d'une boucle for dans un script shell, vous pouvez essayer certains de ces exemples de code.
L’éditeur étant ouvert, il est temps d’écrire du code.
#!/usr/bin/bash for i in 1 2 3 do echo "Current # $i" done
Sortie :
Instructions :
Appuyez sur Ctrl + X pour enregistrer le code dans l'éditeur de texte. Enregistrez et quittez le script.
Vous devez modifier les autorisations du script shell avant d'exécuter le code.
Entrez chmod +x suivi du nom de votre fichier de script shell :
linuxmi@linuxmi:~/www.linuxmi.com$ chmod +x LinuxMi.com.sh
Après avoir accordé l'autorisation, exécutez la boucle for dans le script shell en tapant :
linuxmi@linuxmi:~/www.linuxmi.com$ ./LinuxMi.com.sh
La sortie sera imprimée dans la fenêtre du terminal.
Il existe d'autres façons de définir des boucles for dans les scripts shell. Vous pouvez également utiliser des accolades pour spécifier les valeurs de début et de fin de l'itération de la boucle.
Voici la structure du code :
for i in {1..3} # for循环定义了一个变量,以及要通过一个循环进行多少次迭代 do echo "当前值 # $i: 示例 2" done
La boucle s'exécutera 3 fois et la valeur sera imprimée comme suit :
Si vous souhaitez vous déplacer de manière discontinue dans l'itération, vous pouvez définir la valeur du pas dans la boucle. En fonction de la valeur spécifiée, la sortie aura un écart fixe.
Par exemple :
for i in {1..10..2} do echo "Number = $i" done
Description :
输出:
输出相差 2,这是在 step 语句中指定的。
shell 脚本中的 for 循环不仅限于整数。在 Bash 中,你可以使用 for 循环来有效地遍历字符和字符串值。
这是一个基本示例,说明如何遍历一些字符串值(在 for 语句中定义):
for name in LinuxMi linuxmi.com www.linuxmi.com do echo "My name is $name" done
说明:
输出:
这个 for 循环将迭代 3 次,因为在for语句中只指定了三个字符串值。
如果你想传递一些逻辑条件来中途终止循环怎么办?为此,你可以使用逻辑语句,例如IF语句。IF 语句控制循环的工作方式以及结果将打印什么输出。
for distro in LinuxMi Debian CentOS Ubuntu; do if [[ "$distro" == 'CentOS' ]]; then break fi echo "distro: $distro" done echo '全部完成!'
只要 distro 的值等于 CentOS,循环就会终止,并打印输出。循环运行直到不再满足条件。
由于 CentOS 在值列表中排名第三,因此循环将运行两次迭代,然后打印最终输出全部完成!
循环是 Linux shell 结构中必不可少的一部分,它可以极大地增强 Linux 脚本的功能。
如果你必须打印重复的输出,没有什么比 Bash 脚本中的循环更好的了。正如我们前面提到的,几乎所有编程语言都可以使用循环,Python 也不例外。减少重复并遵循 DRY(不要重复自己)代码。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!