Bonjour à tous,

Alors le titre est pas forcément parlant, pourtant ce que je cherche à faire me parait pas compliqué en soit mais je galère un peu...

J'ai une structure case avec plusieurs choix, dont certains qui impliquent une nouvelle structure case imbriquée. (En gros une sortie de menu, qui amène à un autre etc...).
L'idée étant que quand je sors d'un menu je revienne au précédent (et si je suis au premier, alors je sors du script).

Mais mon soucis est que peu importe dans quel sous-niveau de mon menu je suis, si j'entre la valeur attendue pour sortir, je sors complètement du script.

Un extrait du script (vous occupez pas de certains mots, j'ai des fonctions définies ailleurs mais qui n'impactent pas mon problème actuel) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
until [ $choix_menu_dest -eq 0 ]
do
        menu_dest
        choix_menu_dest2=`echo $choix_menu_dest | tr A-Z a-z`
 
        case $choix_menu_dest2 in
                0)
                        echo
                        echo "Bonne journee !"
                        break
        ;;
                all)
                        for i in `cat $dbm_remote $central_lognes $mail2print`
                        do
                                fic_dest=/mnt/$i/$fichier
                                copie
                        done
                        for i in `cat $workstations`
                        do
                                to_mount $i
                                fic_dest=/mnt/$i/$fichier
                                copie
                                to_unmount $i
                        done
                        continue
        ;;
                1)
                        menu_central_mmo
                        choix_menu_central_mmo2=`echo $choix_menu_central_mmo | tr A-Z a-z`
 
                        case $choix_menu_central_mmo2 in
                                0)
                                        break
                        ;;
                                all)
                                        for i in `cat $central_lognes`
                                        do
                                                fic_dest=/mnt/$i/$fichier
                                                copie
                                        done
                                        continue
                        ;;
Alors j'ai pas fermé les "case esac" dans le code ci-dessus parce que je poste pas tout le script (plus de 900 lignes avec pas mal de répétitions j'vois pas trop l'intérêt ).
A mon avis mon problème se situe plutôt au niveau de mon break qui doit me sortir de la boucle initiale au lieu de sortir.

Merci de votre aide.