Cette structure nous permet de faire une action pour chaque élément d'une liste. La liste peut être donnée directement, ou être le résultat d'une commande.
Syntaxe :
On met un point-virgule après la liste des éléments et après le groupe d'actions.
Exemple 1, où on tape la liste manuellement :
Le résultat est :
Exemple 2, où la liste est le résultat d'une commande. Au lieu de faire un exemple bête comme j'en ai l'habitude... Si, si... On va faire un script très pratique, qui permet de renomer des fichiers par lot. On appelle le script avec deux paramètres : le premier est l'extention actuelle des fichiers, le second est l'extention qu'on veut donner. Et comme maintenant vous êtes très forts, on va même vérifier que le nombre de paramètres est bon. C'est plus prudent avec les étourdis !
Voilà le résultat :
Et voilà le travail ! Tous nos fichiers .txt ont été renomés en .tmp. Et nous avons été avertis quand le nombre de paramètres n'était pas bon.
Pour ce type de structure, on utilise la commande case. Cette commande est équivalente à une série de if ... elif ... elif ... elif ... else ... fi, mais ç apparait de façon beaucoup plus claire et lisible.
Syntaxe :
Pour chaque possibilité, on a une action associée. Si aucun des cas n'est rencontré, c'est l'action par défaut (correspondant à "*)") qui est exécutée. Chaque action ou suite d'actions se termine par un double point-virgule. La structure se termine par "esac" ("case" écrit à l'envers).
Syntaxe :
La commande select affiche un menu qui vous propose le choix parmis la liste définie. Chaque ligne est numérotée en partant de 1. Select affiche une phrase qui vous demande d'entrer votre choix. Cette phrase est contenu dans la variable PS3 qu'il faudra initialiser avant (par défaut, elle contient "#?"). Une fois que vous avez validé votre réponse, elle est mémorisée dans la variable REPLY.
Select repose indéfiniment la même question, jusqu'à ce qu'on quitte le script avec les touches ctrl-c. Pour éviter ça, on utilise la commande "break" qui permet de sortir de la structure pour passer à la suite du script. Il est fortement conseillé d'utiliser select en combinaison avec case. Ainsi, on peut facilement orienter le déroulement du script en fonction de la valeur choisie.
Comme tout ça n'est pas vraiment simple dit comme ça, on va faire un exemple pour montrer que finalement ça n'est pas si complexe que ça en a l'air. Au contraire, on peut faire très facilement un menu.
Voilà ce que ça donne à l'écran :
Et voilà comment qu'on est trop forts !
<< page précédente
6_Les structures conditionnelles |
page suivante >>
8_Les fonctions |