Bash : Créer un menu avec plusieurs sous menu ---> HELP
xunil2003
Messages postés
830
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai fait un script bash avec plusieurs sous menu.
L'objectif est que lorsque l'utilisateur sélectionne un sous menu il reste dedans.
ça marche pour le sous menu 1 met pas pour les autres non.
Je ne sais pas ou est mon erreur exactement ?
Merci pour votre aide.
Résultat de l'erreur pour les sous menu 2 et 3.
La ligne 55 est :
Merci.
J'ai fait un script bash avec plusieurs sous menu.
L'objectif est que lorsque l'utilisateur sélectionne un sous menu il reste dedans.
ça marche pour le sous menu 1 met pas pour les autres non.
Je ne sais pas ou est mon erreur exactement ?
Merci pour votre aide.
#! /bin/bash
echo "--- Menu général ---"
echo "Saisissez un choix, <q> pour quitter le menu"
echo "<1> Menu 1"
echo "<2> Menu 2"
echo "<3> Menu 3"
echo ""
echo "<10> q = Quitter"
read choix_mg
case $choix_mg in
10) exit;;
q) exit ;;
1) choix_M1=$null
until [ $choix_M1 = "Q" ] ; do
echo ""
echo "--- Menu 1 ---"
echo "Saisissez un choix, <q> pour quitter le menu"
echo "<1> test 1"
echo "<2> test 2"
echo "<3> test 3"
echo ""
echo "<4> Quitter"
read choix_M1
if [ $choix_M1 != "Q" ]; then
case $choix_M1 in
1) echo "test Menu1 choix 1" ;;
2) echo "test Menu1 choix 2" ;;
3) echo "test Menu1 choix 3" ;;
4) exit;;
q) exit;;
quitter) exit;;
exit) exit;;
*) echo "Choix incorrect";;
esac
fi
done
echo ""
esac
2) choix_M2=$null
until [ $choix_M2 = "Q" ] ; do
echo ""
echo "--- Menu 2 ---"
echo "Saisissez un choix, <q> pour quitter le menu"
echo "<1> test 1"
echo "<2> test 2"
echo "<3> test 3"
echo ""
echo "<4> Quitter"
read choix_M2
if [ $choix_M2 != "Q" ]; then
case $choix_M2 in
1) echo "test Menu2 choix 1" ;;
2) echo "test Menu2 choix 2" ;;
3) echo "test Menu2 choix 3" ;;
4) exit;;
q) exit;;
*) echo "Choix incorrect";;
esac
fi
done
echo ""
esac
3) choix_M3=$null
until [ $choix_M3 = "Q" ] ; do
echo ""
echo "--- Menu 3 ---"
echo "Saisissez un choix, <q> pour quitter le menu"
echo "<1> test 1"
echo "<2> test 2"
echo "<3> test 3"
echo ""
echo "<4> Quitter"
read choix_M3
if [ $choix_M3 != "Q" ]; then
case $choix_M3 in
1) echo "test Menu3 choix 1" ;;
2) echo "test Menu3 choix 2" ;;
3) echo "test Menu3 choix 3" ;;
4) exit;;
q) exit;;
*) echo "Choix incorrect";;
esac
fi
done
echo ""
esac
Résultat de l'erreur pour les sous menu 2 et 3.
laurent@PC-ubuntu:~$ sh /home/laurent/bash/Ubuntu_12.04/test2.sh --- Menu général --- Saisissez un choix, <q> pour quitter le menu <1> Menu 1 <2> Menu 2 <3> Menu 3 <4> Menu 4 <10> q = Quitter 2 /home/laurent/bash/Ubuntu_12.04/test2.sh: 55: /home/laurent/bash/Ubuntu_12.04/test2.sh: Syntax error: ")" unexpected laurent@PC-ubuntu:~$
La ligne 55 est :
2) choix_M2=$null
Merci.
A voir également:
- Bash : Créer un menu avec plusieurs sous menu ---> HELP
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
3 réponses
case a in
toto) case b in
un) :
;;
deux) :
;;
esac
titi) :
;;
esacÇa, c'est indenté! en respectant le code, pas ce qui doit être affiché.
Chaque esac tombe sous son case
C'est valable pour tout : if/fi, do/done...