Syntaxe :
select var in item1 item2 item3 ..... itemn
do
commandes
done
La commande interne select est une structure de contrôle de type boucle qui permet d'afficher de manière cyclique un menu.
La liste des items sera affichée à l'écran à chaque tour de boucle.
Les items sont indicés automatiquement.
La variable var sera initialisée avec l'item correspondant au choix de l'utilisateur.
Cette commande utilise également deux variables réservées :
La variable var contient le libellé du choix et REPLY l'indice de ce dernier.
Exemple :
$ nl select.sh
1 #!/bin/bash
2
3 function sauve {
4 echo "Lancement de la sauvegarde"
5 }
6
7 function restaure {
8 echo "Lancement de la restauration"
9 }
10
11 PS3="Votre choix : "
12
13 select item in "- Sauvegarde -" "- Restauration -" "- Fin -"
14 do
15 echo "Vous avez choisi l'item $REPLY : $item"
16 case $REPLY in
17 1)
18 # Appel de la fonction sauve
19 sauve
20 ;;
21 2)
22 # Appel de la fonction restaure
23 restaure
24 ;;
25 3)
26 echo "Fin du script"
27 exit 0
28 ;;
29 *)
30 echo "Choix incorrect"
31 ;;
32 esac
33 done
$
Exécution :
$ ./select.sh
1) - Sauvegarde -
2) - Restauration -
3) - Fin -
Votre choix : 2
Vous avez choisi l'item 2 : - Restauration -
Lancement de la restauration
La saisie de la touche [Entrée] permet de réafficher le menu :
$ .
Votre choix : # Appui sur la touche [Entrée]
1) - Sauvegarde -
2) - Restauration -
3) - Fin -
Votre choix : 3
Vous avez choisi l'item 3 : - Fin -
Fin du script
$