GNU/Linux >> Tutoriels Linux >  >> Linux

Le but du mot-clé "do" dans Bash For Loops ?

Quel est le but du do mot-clé dans Bash for syntaxe de boucle ? Pour moi, cela semble redondant.

for i in `seq 1 2`; do echo "hi"; done

Pourquoi la syntaxe n'est-elle pas comme celle-ci ?

for i in `seq 1 2`; echo "hi"; done

Je suis sûr que c'est le cas remplir un but. Je veux juste apprendre.

Réponse acceptée :

Notez que cette syntaxe est héritée du shell Bourne.

Après le nom de la variable, vous pouvez avoir soit in pour avoir la liste des éléments explicitement donnée, ou do , pour boucler sur les paramètres de position.

for i in 1 2 3
do
  echo "$i"
done

Ou

set 1 2 3
for i do
  echo "$i"
done

Avoir le do dans les deux cas (même si ce n'est pas strictement nécessaire dans le premier) permet d'avoir une syntaxe plus cohérente. Il est également cohérent avec le while /until boucles où le do est nécessaire.

while
  cmd1
  cmd2
do
  cmd3
  cmd4
done

Vous avez besoin du do pour indiquer où se trouve la liste des conditions fin des commandes.

Notez que le shell Bourne ne supportait pas for i; do . Cette syntaxe n'était pas non plus POSIX jusqu'à l'édition 2016 de la norme (for i do a toujours été POSIX ; voir le bogue du groupe Austin associé).

zsh a quelques formes abrégées comme :

for i in 1 2 3; echo $i
for i (1 2 3) echo $i
for ((i=1;i<=3;i++)) echo $i

Ou prise en charge de plusieurs variables :

for i j (1 a 2 b) echo $i $j

(bien que vous ne puissiez pas utiliser in ou do comme nom de variable à la place de j ci-dessus).

Même s'ils sont rarement documentés, la plupart des shells de type Bourne (Bourne, ksh, bash, zsh, pas ash ni yash ) prennent également en charge :

for i in 1 2 3; { echo "$i";}

Le shell Bourne, ksh et zsh (mais pas bash ) prennent également en charge :

for i { echo "$i"; }

Tandis que bash , ksh et zsh (mais pas le shell Bourne) :

for i; { echo "$i"; }

Tous (Bourne, bash , ksh , zsh ) prise en charge :

for i
{ echo "$i";}

ksh93 , bash , zsh assistance :

for ((i=1;i<=3;i++)) { echo "$i"; }

Linux
  1. Astuces Bash pour tous les jours en ligne de commande

  2. Deux grandes utilisations de la commande cp :Raccourcis Bash

  3. Script Linux :3 tutoriels pour les boucles while dans Bash

  4. Comment puis-je compter le nombre de caractères dans une variable Bash

  5. Portée variable pour les scripts shell bash et les fonctions dans le script

Bash For Loops avec des exemples

Bash For Loop – Le guide le plus pratique

Est-il possible que l'achèvement de Bash parcoure les alternatives ?

La boucle Bash FOR expliquée et simplifiée

À quoi sert $# dans Bash

Comment changer la résolution du Bash pour une VM Debian ?