ISIMA - 1e année - Systèmes d'exploitation
TP 2 – menus de shell sous Linux/Unix (ver. 2016.2)

Le but de ce TP est de créer un menu interactif commandant un certain nombre d'actions sous Unix/Linux.
  1. Ecrire un script "menu.sh" qui affiche le menu suivant à l'écran.
    ---------------------------------------
    | Bonjour *                           |
    | Répertoire courant : *              |
    | 1 : Afficher l'espace disque occupé |
    | 2 : Changer de répertoire           |
    | 3 : Créer un sous-répertoire        |
    | 4 : Effacer un sous-répertoire      |
    | 5 : Editer un fichier texte         |
    | 6 : Envoyer un mail                 |
    | 0 : Se déconnecter                  |
    ---------------------------------------
    Votre choix (1, 2, 3, 4, 5, 6, 0) ?

     
  2. Modifier le script pour qu'il affiche le nom de l'utilisateur et le répertoire courant à la place des '*'.
    N.B. Il faudrait donc régler les espacements pour que les '|' terminaux restent alignés...
     
  3. Ajouter une boucle pour que le menu fonctionne en contrôlant les valeurs saisies : le menu se réaffiche après chaque saisie différente de '0' et après un message "saisie erronée" pour un caractère hors domaine. Le script termine en affichant "bye".
     
  4. Ajouter le code nécessaire pour que les commandes fonctionnent.
    Pour l'item '5', le script demandera le nom du fichier à éditer et ce fichier sera édité en mode GUI sans perturber le menu.
    N.B. L'envoi de mail via le shell est peut-être bloqué par le système.
     
  5. Le script lit un fichier ".menuinfo", dans le dossier racine de l'utilisateur, pour savoir quels items entre 1 à 6 sont utilisés, et affiche la partie du menu correspondante. Les actions possibles seront adaptées en conséquence.
     
  6. La première ligne du fichier ".menuinfo" indique la langue à utiliser ("en", "de", "es", "it", ...) et le texte du menu est affiché dans la langue correspondante.
    Par exemple en anglais :
    Hello *
    Current folder : *
    1 : Used disk space
    2 : Change current folder
    3 : Creat sub-folder
    4 : Erase sub-folder
    5 : Edit a textfile
    6 : Send an email
    Your choice (1, 2, 3, 4, 5, 6, 0) ?
     
  7. Comment procéder pour que le texte du menu soit stocké dans un des fichiers correspondant à la langue (".menuen", ".menude", ...) et présents dans le dossier racine de l'utilisateur ?
    Si le fichier correspondant à la langue n'existe pas, le menu est affiché par défaut en français.
     
  8. Comment faire pour que l'affichage du menu et la sélection de la commande se fasse dans un script différent de celui qui exécute les commandes ?