Maison > Tutoriel système > Linux > le corps du texte

Linux Bash Shell-Petite boucle, grande utilisation

王林
Libérer: 2024-02-11 13:00:03
avant
581 Les gens l'ont consulté

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.

pour la structure de la boucle

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
Copier après la connexion

À 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
Copier après la connexion

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.

Créer et exécuter des boucles dans Linux Bash

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
Copier après la connexion

Vous pouvez changer le nom du script shell comme vous le souhaitez. L'extension est sh car vous allez stocker un script shell.

Utilisez une boucle for pour imprimer des entiers

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.

1. Code de boucle pour imprimer un ensemble de chiffres

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
Copier après la connexion
Linux Bash Shell-小循环大用处

Sortie :

Linux Bash Shell-小循环大用处

Instructions :

  • i = nom de la variable pour stocker la valeur de l'itération
  • 1 2 3 = nombre d'itérations de la boucle for dans le script shell
  • do = une commande pour effectuer un ensemble spécifique d'actions
  • echo = imprimer le résultat défini à côté
  • done = fin de la boucle

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
Copier après la connexion

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
Copier après la connexion

La sortie sera imprimée dans la fenêtre du terminal.

2. Méthode alternative pour imprimer un ensemble de nombres

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
Copier après la connexion
Linux Bash Shell-小循环大用处

La boucle s'exécutera 3 fois et la valeur sera imprimée comme suit :

Linux Bash Shell-小循环大用处

3. Code de boucle utilisant la valeur de pas

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
Copier après la connexion

Description :

  • i = 存储迭代的变量
  • 1..10 = 运行循环的迭代次数
  • 2 = 阶跃值
  • do = 命令打印输出
  • echo = 打印命令
  • done = 循环的退出命令
Linux Bash Shell-小循环大用处

输出:

Linux Bash Shell-小循环大用处

输出相差 2,这是在 step 语句中指定的。

使用 for 循环打印字符值

shell 脚本中的 for 循环不仅限于整数。在 Bash 中,你可以使用 for 循环来有效地遍历字符和字符串值。

1. 遍历字符串

这是一个基本示例,说明如何遍历一些字符串值(在 for 语句中定义):

for name in LinuxMi linuxmi.com www.linuxmi.com
do
 echo "My name is $name"
done
Copier après la connexion

说明:

  • name = 存储字符串值的变量
  • do = 命令打印输出
  • echo = 打印命令
  • done = 循环的退出命令
Linux Bash Shell-小循环大用处

输出:

Linux Bash Shell-小循环大用处

这个 for 循环将迭代 3 次,因为在for语句中只指定了三个字符串值。

2. 循环遍历有条件的字符串

如果你想传递一些逻辑条件来中途终止循环怎么办?为此,你可以使用逻辑语句,例如IF语句。IF 语句控制循环的工作方式以及结果将打印什么输出。

for distro in LinuxMi Debian CentOS Ubuntu; do

 if [[ "$distro" == 'CentOS' ]]; then

 break

 fi

 echo "distro: $distro"

done

echo '全部完成!'
Copier après la connexion
Linux Bash Shell-小循环大用处

只要 distro 的值等于 CentOS,循环就会终止,并打印输出。循环运行直到不再满足条件。

由于 CentOS 在值列表中排名第三,因此循环将运行两次迭代,然后打印最终输出全部完成!

Linux Bash Shell-小循环大用处

在 Linux Bash 中运行循环

循环是 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!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal