C Shell |
Bourne Shell |
|
|
Syntaxe |
switch ( nom) |
case nom in |
case label1: |
label1) |
commandes |
commandes |
 |
 |
breaksw |
;; |
case label2: |
label2) |
commandes |
commandes |
 |
 |
breaksw |
;; |
default: |
*) |
# tous les autres cas |
# tous les autres cas |
commandes |
commandes |
 |
 |
breaksw |
;; |
endsw |
esac |
Remarques |
Les labels suivant le "case" peuvent exprimer une alternative de type
"ou" avec la notation "[] ", ainsi :
"case [oO][uU][iI]: " accepte "oui" et "OUI" ainsi que
toutes les combinaisons possibles avec les minuscules et les majuscules. |
Les labels de chaque cas peuvent exprimer un alternative de type "ou" en
étant séparés par le caractère "| ", ainsi "oui|OUI) "
accepte seulement les deux combinaisons suivantes : "oui" et "OUI". |
Le branchement s'effectue sur une clause "case" en fonction de la valeur
spécifiée entre parenthèses à l'instruction "switch". Les instructions
sont exécutées jusqu'à ce que "breaksw" (ou "endsw") soit localisé. |
Le branchement s'effectue sur une clause "label)" en fonction de la valeur
spécifiée entre les mots clef "case" et "in". Les instructions
sont exécutées jusqu'à ce que ";;" (ou "esac") soit localisé. |
Exemple |
#!/bin/csh |
#!/bin/sh |
switch ($MACHINE) |
case $MACHINE in |
case "SUN": |
"SUN") |
echo "Je suis sur Sun" |
echo "Je suis sur Sun." |
breaksw |
;; |
case "SGI": |
"SGI") |
echo "Je suis sur Silicon" |
echo "Je suis sur Silicon." |
breaksw |
;; |
case "DEC": |
"DEC"|"HP"|"IBM") |
case "HP": |
echo "Je suis sur DEC" |
case "IBM": |
echo "Peut-etre ou HP" |
echo "Je suis sur DEC" |
echo "Ou bien encore IBM." |
echo "Peut-etre ou HP" |
;; |
echo "Ou bien encore IBM." |
*) |
default: |
echo "Je suis en SH" |
echo "Je suis en CSH" |
esac |
endsw |
|