<Précédent | Table des matières | Suivant>
menus
Un type courant d'interactivité est appelé piloté par menu. Dans les programmes pilotés par menu, l'utilisateur se voit présenter une liste de choix et est invité à en choisir un. Par exemple, nous pourrions imaginer un programme qui présente les éléments suivants :
Veuillez sélectionner:
1. Afficher les informations système
2. Afficher l'espace disque
3. Afficher l'utilisation de l'espace domestique
0. Quitter
Entrer la sélection [0-3] >
Veuillez sélectionner:
1. Afficher les informations système
2. Afficher l'espace disque
3. Afficher l'utilisation de l'espace domestique
0. Quitter
Entrer la sélection [0-3] >
En utilisant ce que nous avons appris en écrivant notre sys_info_page programme, nous pouvons construire un programme piloté par menu pour effectuer les tâches du menu ci-dessus :
#! / Bin / bash
# read-menu : un programme d'information système piloté par menu clair
écho "
Veuillez sélectionner:
1. Afficher les informations système
2. Afficher l'espace disque
3. Afficher l'utilisation de l'espace domestique
0. Quitter "
read -p "Entrer la sélection [0-3] > "
#! / Bin / bash
# read-menu : un programme d'information système piloté par menu clair
écho "
Veuillez sélectionner:
1. Afficher les informations système
2. Afficher l'espace disque
3. Afficher l'utilisation de l'espace domestique
0. Quitter "
read -p "Entrer la sélection [0-3] > "
si [[ $REPLY =~ ^[0-3]$ ]] ; alors si [[ $REPLY == 0 ]]; alors
echo "Programme terminé." sortir
fi
if [[ $REPLY == 1 ]] ; then echo "Hostname: $HOSTNAME" uptime
sortie
fi
if [[ $REPLY == 2 ]]; puis df -h
sortie
fi
if [[ $REPLY == 3 ]]; alors
if [[ $(id -u) -eq 0 ]] ; alors
echo "Utilisation de l'espace d'accueil (tous les utilisateurs)" du -sh /home/*
d'autre
echo "Utilisation de l'espace domestique ($USER)" du -sh $HOME
fi sortie
fi d'autre
echo "Entrée invalide." >&2 sortie 1
fi
si [[ $REPLY =~ ^[0-3]$ ]] ; alors si [[ $REPLY == 0 ]]; alors
echo "Programme terminé." sortir
fi
if [[ $REPLY == 1 ]] ; then echo "Hostname: $HOSTNAME" uptime
sortie
fi
if [[ $REPLY == 2 ]]; puis df -h
sortie
fi
if [[ $REPLY == 3 ]]; alors
if [[ $(id -u) -eq 0 ]] ; alors
echo "Utilisation de l'espace d'accueil (tous les utilisateurs)" du -sh /home/*
d'autre
echo "Utilisation de l'espace domestique ($USER)" du -sh $HOME
fi sortie
fi d'autre
echo "Entrée invalide." >&2 sortie 1
fi
Ce script est logiquement divisé en deux parties. La première partie affiche le menu et saisit la réponse de l'utilisateur. La deuxième partie identifie la réponse et exécute l'action sélectionnée. Remarquez l'utilisation du sortie commande dans ce script. Il est utilisé ici pour empêcher le script d'exécuter du code inutile après l'exécution d'une action. La présence de plusieurs points de sortie dans un programme est généralement une mauvaise idée (cela rend la logique du programme plus difficile à comprendre), mais cela fonctionne dans ce script.