Script bash a menu multiple

Résolu/Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 10 sept. 2012 à 15:29
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 10 sept. 2012 à 16:34
Bonjour,

Je voudrai faire un script bash a plusieurs menus

Quand j'exécute mon script bash pour passer au menu 4, il m'affiche :
--- 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
4
/home/laurent/bash/utils5.sh: ligne38: Erreur de syntaxe près du symbole inattendu « ) »
/home/laurent/bash/utils5.sh: ligne38: '2)              echo ""'
$


La ligne 38 est :
2)		echo ""


J'ai fait ceci
#! /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 "<4> 	Menu 4"
echo "<10>	q = Quitter"
read choix 
case $choix in 

1)		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"
		read choix_menu_1 
		case $choix_menu_1 in 
		1)	echo "test Menu1 choix 1" ;;
		2)	echo "test Menu1 choix 2"  ;;
		3)	echo "test Menu2 choix 3" ;;
		q) exit;;
		*) echo "Choix incorrect";;
		esac


2)		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"
		read choix_menu_2 
		case $choix_menu_2 in 
		1)	echo "test Menu2 choix 1" ;;
		2)	echo "test Menu2 choix 2" ;;
		3)	echo "test Menu2 choix 3"  ;;
		q) exit;;
		*) echo "Choix incorrect";;
		esac



3)		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"
		read choix_menu_3 
		case $choix_menu_3 in 
		1)	echo "test Menu3 choix 1" ;;
		2)	echo "test Menu3 choix 2"  ;;
		3)	echo "test Menu3 choix 3" ;;
		q) exit;;
		*) echo "Choix incorrect";;
		esac




4)		echo ""
		echo "--- Menu 4 ---"
		echo "Saisissez un choix,  <q> pour quitter le menu"
		echo "<1> 	test 1"
		echo "<2>	test 2"
		echo "<3>	test 3"
		read choix_menu_4 
		case $choix_menu_4 in 
		1)	echo "test Menu4 choix 1" ;;
		2)	echo "test Menu4 choix 2"  ;;
		3)	echo "test Menu4 choix 3" ;;
		q) exit;;
		*) echo "Choix incorrect";;
		esac


q) exit;;
*) echo "Choix incorrect";;
esac


Ou est mon erreur ?
Merci.

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
10 sept. 2012 à 15:34
Salut,

Il manque les ";;" après chaque "esac" de tous tes sous menus ;-\

Par contre je serai toi, je ferai des fonctions de chaque sous-menu que j'appellerai dans chaque case, histoire d'alléger le code....

1