Voici un exemple de menu pour la console écrit en C Shell pour Linux lorsque j'étais au CÉGEP :
- #!/bin/csh
-
- # ****************************************************************************
- # * *
- # * P R O J E T 1 - Shell par Menu *
- # * *
- # * Nom du programmeur: Sylvain Maltais *
- # * Date de creation: 1998/10/08 *
- # * *
- # * Description *
- # * ----------- *
- # * *
- # * Ce projet permet de manipuler les fonctions elementaires du shell Unix *
- # * sous forme d'un menu a numero. Il suffit d'entrer un numero pour par *
- # * effectuer une demande de changement de repertoire par exemple. *
- # * *
- # * Syntaxe *
- # * menu (aucun parametre requis) *
- # * *
- # ****************************************************************************
-
- # Fichier temporaire: temp
- # Fichier auxiliaire: sub et read
- # Variable temporaire: temp, ok
-
- set temp = `pwd`
- set ok = Oui
-
- # extra ----
-
- clear
- echo "******************************************************************"
- echo "* *"
- echo "* Projet 1 - Tous droits reserves par Gladir.com *"
- echo "* *"
- echo "* Octobre 1998 *"
- echo "* *"
- echo "* Programme fait par Sylvain Maltais *"
- echo "* *"
- echo "* Description *"
- echo "* ----------- *"
- echo "* *"
- echo "* Programme de gestion du Shell Unix par Menu deroulant. *"
- echo "* *"
- echo "******************************************************************"
- echo ""
- echo "Appuyer sur ENTER touche pour continuer"
- ~/projet1/read
-
- while ( $ok == Oui )
- clear
- echo "Repertoire courant: `pwd`"
- echo "(repertoire memorise: $temp)"
- echo ""
- echo " Menu principal:"
- echo ""
- echo " 1 - Retourner au repertoire parent"
- echo " 2 - Aller a un repertoire enfant"
- echo " 3 - Lister le contenu du repertoire courant"
- echo " 4 - Montrer l'aborescence de repertoire a partir du repertoire courant"
- echo " 5 - Memoriser le repertoire courant"
- echo " 6 - Memoriser le repertoire courant et aller au repertoire memorise"
- echo " 7 - Afficher le contenu d'un fichier (page par page, lignes numerotes)"
- echo " 8 - Executer une commande UNIX du shell"
- echo " 9 - Renommer un fichier"
- echo ""
- echo " 0 - Quitter"
- echo ""
- echo "Votre choix?"
- set choix = `~/projet1/read`
- switch ( $choix )
- case 1:
- cd ..
- breaksw
- case 2:
- clear
- echo "A quel repertoire voulez-vous acceder?"
- echo ""
- set dir=`ls`
- touch ~/projet1/temp
- set n = 1
- foreach x ( $dir )
- if ( -d $x ) then
- echo $x >> ~/projet1/temp
- echo $n - $x
- @ n++
- endif
- end
- echo ""
- echo "0 - Annuler la commande"
- echo ""
- echo "Votre choix?"
- set a=`~/projet1/read`
- if ( $a != 0 ) then
- set repchoix=`head -$a ~/projet1/temp | tail -1`
- cd $repchoix
- endif
- rm ~/projet1/temp
- breaksw
- case 3:
- clear
- set nf=0
- set nr=0
- set nl=`ls | wc -l`
- echo "Le contenu de `pwd` est: "
- @ n = 1
- while ( $n <= $nl )
- @ n++
- set x = `ls -l -p | head -$n | tail -1`
- if ( -d $x[9] ) then
- @ nr++
- echo $x[9] #>> ~/projet1/temp
- else
- @ nf++
- echo $x[9] ":" $x[5] "octet(s)"
- endif
- end
- echo ""
- echo $nr "repertoire," $nf "fichier(s) normal(aux)"
- echo ""
- echo "Appuyer sur ENTER pour continuer"
- ~/projet1/read
- breaksw
- case 4:
- clear
- set rep=`pwd`
- echo $rep
- echo ""
- ~/projet1/sub $rep"/" 1
- echo ""
- echo "Appuyer sur ENTER pour continuer"
- ~/projet1/read
- breaksw
- case 5:
- clear
- echo "Entrez le repertoire a memoriser"
- set temp=`~/projet1/read`
- breaksw
- case 6:
- clear
- set x=$temp
- set temp=`pwd`
- cd x
- echo "Repertoire inversee"
- echo "Entrez une touche pour continuer"
- ~/projet1/read
- breaksw
- case 7:
- clear
- echo "A quel fichier voulez-vous acceder?"
- echo ""
- set dir=`ls`
- touch ~/projet1/temp
- set n = 1
- foreach x ( $dir )
- if ( -d $x ) then
- else
- echo $x >> ~/projet1/temp
- echo $n - $x
- @ n++
- endif
- end
- echo ""
- echo "0 - Annuler la commande"
- echo ""
- echo "Votre choix?"
- set a=`~/projet1/read`
- if ( $a != 0 ) then
- set repchoix=`head -$a ~/projet1/temp | tail -1`
- echo "Le contenu de: "$repchoix
- nl $repchoix | more
- echo "Appuyer sur ENTER pour continuer"
- ~/projet1/read
- endif
- rm ~/projet1/temp
- breaksw
- case 8:
- clear
- echo "Entrez votre commande:"
- set a=`~/projet1/read`
- $a
- echo "Appuyer sur ENTER pour continuer"
- ~/projet1/read
- breaksw
- case 9:
- clear
- echo "Quel est le fichier a renommer"
- echo ""
- set dir=`ls`
- touch ~/projet1/temp
- set n=1
- foreach x ( $dir )
- if ( -d $x ) then
- else
- echo $x >> ~/projet1/temp
- echo $n - $x
- @ n++
- endif
- end
- echo ""
- echo "0 - Annuler la commande"
- echo ""
- echo "Votre choix?"
- set a=`~/projet1/read`
- if ( a$ != 0 ) then
- set rep=`head -$a ~/projet1/temp | tail -1`
- echo "Entrez votre nouveau nom?"
- set b=`~/projet1/read`
- mv $rep $b
- echo "Renomme "$rep" a "$b
- echo "Presse ENTER pour continuer"
- ~/projet1/read
- endif
- rm ~/projet1/temp
- breaksw
- case 0:
- set ok = Non
- breaksw
- endsw
- end
Dernière mise à jour : Lundi, le 8 octobre 2018