diff --git a/unix/shell/boucle.tml b/unix/shell/boucle.tml index 8662644..a37c0df 100644 --- a/unix/shell/boucle.tml +++ b/unix/shell/boucle.tml @@ -19,7 +19,7 @@ href="script.html">initiation à la programmation en shell).
Toutefois, avoir posé les rails ne suffit pas toujours : il peut -importer de disposer de mécanismes d'aiguillage. Les boucles vous +importer de disposer de mécanismes d'aiguillage. Les structures de contrôle vous permettront de réaliser ces mécanismes d'aiguillage, qui donneront à vos scripts souplesse et efficacité.
@@ -27,7 +27,7 @@ scripts souplesse et efficacité.if
et case
if
if
else
(sinon), qui est facultatif et marque le
comportement à adopter si la condition n'est pas remplie ; fi
(if
à l'envers), qui marque la fin de
-la boucle.On peut donc taper :
@@ -137,7 +137,7 @@ fielif
successifs est
illimité, alors qu'il ne peut (et c'est logique) y avoir qu'une
seule condition if
, une seule instruction else
-et une seule instruction fi
dans une boucle. fi
correspondant au if
initial.
$HOME
est cité dans des guillemets simples, alors que $PWD
est
@@ -149,11 +149,11 @@ interprété (le mot « $HOME » apparaîtra tel quel), tandis que
-case
case
case
à if
?La boucle if
est très pratique, mais devient rapidement
+
La structure de contrôle if
est très pratique, mais devient rapidement
illisible lorsqu'un aiguillage offre plusieurs sorties, et que l'on doit
répéter une condition pusieurs fois sous des formes à peine
différentes. Typiquement, un programme comme celui-ci est pénible à
@@ -186,14 +186,14 @@ $PWD = » ; et qui dit redondance dit possibilité de
faute de frappe – erreur particulièrement difficile à repérer
à l'œil nu ;
if
n'est pas, dans la boucle, sur le même plan que
-elif
, alors que logiquement les deux instructions le
-sont), ce qui nuit à la lisibilité.if
correspond un fi
mais les elif
+n'ont pas besoin d'être ainsi « refermés », alors que logiquement les deux
+instructions le sont), ce qui nuit à la lisibilité.La boucle case
entend remédier à ces inconvénients. Il
+
La structure de contrôle case
entend remédier à ces inconvénients. Il
s'agit tout simplement de la simplification d'un usage fréquent de la
structure if
. On peut récrire le programme suivant avec
case
:
elif
;case
La boucle case
adopte la syntaxe suivante :
La structure case
adopte la syntaxe suivante :
case chaîne in @@ -235,7 +234,7 @@ esac
-La boucle case
commence par évaluer la
+La structure case
commence par évaluer la
chaîne. Ensuite, elle va lire chaque motif. Enfin, et
dès qu'une chaîne correspond au motif, elle exécute
les commandes appropriées. En anglais, case signifie
@@ -254,9 +253,9 @@ fermante (qui n'est ouverte nulle part !) ;
case
est close par l'instruction
+case
est close par l'instruction
esac
, qui n'est autre que le mot case
à
-l'envers (de même que la boucle if
est terminée par
+l'envers (de même que la structure if
est terminée par
l'instruction fi
).La boucle case
exécute les commandes correspondant au
+
La structure case
exécute les commandes correspondant au
premier motif correct, et ne parcourt pas les motifs
suivants si elle en a trouvé un. Par conséquent, si le dernier
motif est « * », cela revient à l'instruction
-else
dans la boucle if
.
else
dans la structure if
.
for
Les structures if
et case
sont des
structures d'aiguillage ; les structures while
,
-until
et for
sont proprement des
+until
et for
sont des
boucles. C'est-à-dire qu'elles soumettent à une condition déterminée la
répétition (ou non) d'une suite de commandes.