Un case dans un case

Fermé
Utilisateur anonyme - 8 févr. 2010 à 19:06
 Utilisateur anonyme - 9 févr. 2010 à 17:52
Bonjour,

je possède 2 imprimantes avec plusieurs files d'impressions sur chacune d'elle,

je souhaiterais séparer à l'aide d'un script, les files d'impression pour chaque imprimante

pour résumer :
- en premier lieu, je propose donc un choix d'imprimante ( X700, DC260 ou AUTRES )
- dans un second temps, une fois une imprimante choisie (DC260 par exemple), j'aimerais proposer une liste de files d'impression pour celle-ci,

Choisir une imprimante
1) X700
2) DC260
3) AUTRES
4) quitter
? 2

quelle file DC260 ? :
1) DXCotre
2) DXCotreRectoVerso
3) DSpXCotre
4) DSpXCotreRectoVerso
5) DEnteteCoupon
6) retour

j'essaie de faire une "sorte" de case dans un case en fait,

j'aimerais avoir la structure d'un case à l'intérieur d'un autre case,

voici ce que j'ai commencé par faire :
ex:


printf "\nChoisir une imprimante : \n\n"
select CHOIXIMP in \
 "X700" "DC260" "Autres" Quitter
  do
   case $CHOIXIMP in
         "X700")               export Batch_Que=CHOIXX700;break;;
         "DC260")              export Batch_Que=CHOIXDC260;break;;
         "Autres")             export Batch_Que=CHOIXAUTRES;break;;
         Quitter)              export Batch_Que="";clear;break;;
   esac
  done

CHOIXX700 ()
{
    printf "\nChoisir une file d'impression X700: \n\n"
    select CHOIXX700 in \
     "$XCotre" "$XCotreRectoVerso" "$SpXCotre" "$SpXCotreRectoVerso" "$EnteteCoupon" "$EnteteRecto" "$EnteteRectoVerso" "$Fmp" "$Mixte" "$Recto" "$RectoVe
rso" "$SpEnteteCoupon" "$SpMixte" "$SpEnteteRecto" "$SpEnteteRectoVerso" "$SpRecto" "$SpRectoVerso" "$Standard" \
     do
      case $CHOIXX700 in
                "$XCotre")                export Batch_Que=XCotre;break;;
                "$XCotreRectoVerso")      export Batch_Que=XCotreRectoVerso;break;;
                "$SpXCotre")              export Batch_Que=SpXCotre;break;;
                "$SpXCotreRectoVerso")    export Batch_Que=SpXCotreRectoVerso;break;;
                "$EnteteCoupon")          export Batch_Que=EnteteCoupon;break;;
                "$EnteteRecto")           export Batch_Que=EnteteRecto;break;;
                "$EnteteRectoVerso")      export Batch_Que=EnteteRectoVerso;break;;
                "$Fmp")                   export Batch_Que=Fmp;break;;
                "$Mixte")                 export Batch_Que=Mixte;break;;
                "$Recto")                 export Batch_Que=Recto;break;;
                "$RectoVerso")            export Batch_Que=RectoVerso;break;;
                "$SpEnteteCoupon")        export Batch_Que=SpEnteteCoupon;break;;
                "$SpEnteteRecto")         export Batch_Que=SpEnteteRecto;break;;
                "$SpEnteteRectoVerso")    export Batch_Que=SpEnteteRectoVerso;break;;
                "$SpMixte")               export Batch_Que=SpMixte;break;;
                "$SpRecto")               export Batch_Que=SpRecto;break;;
                "$SpRectoVerso")          export Batch_Que=SpRectoVerso;break;;
                "$Standard")              export Batch_Que=Standard;break;;
      esac
     done
}

CHOIXXDC260 ()
{
    printf "\nChoisir une file d'impression DC260: \n\n"
    select CHOIXDC260 in \
     "$DXCotre" "$DXCotreRectoVerso" "$DSpXCotre" "$DSpXCotreRectoVerso" "$DEnteteCoupon" \
     do
      case $CHOIXDC260 in
                "$DXCotre")               export Batch_Que=DXCotre;break;;
                "$DXCotreRectoVerso")     export Batch_Que=DXCotreRectoVerso;break;;
                "$DSpXCotre")             export Batch_Que=DSpXCotre;break;;
                "$DSpXCotreRectoVerso")   export Batch_Que=DSpXCotreRectoVerso;break;;
                "$DEnteteCoupon")         export Batch_Que=DEnteteCoupon;break;;
      esac
    done
}

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
8 févr. 2010 à 19:23
Salut,

Et où est le problème ? (A part que tes fonctions doivent être déclarées avant le 1er "case" pour pouvoir être appelées depuis ce "case" ;-( )
0
Utilisateur anonyme
8 févr. 2010 à 19:38
Re,

quoique je fasse, il est toujours indiqué quant au premier case:

`case' imprévu

et là je sèche ...
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
8 févr. 2010 à 20:23
Y'a un "\" en trop dans chacune de tes fonctions à la fin de la ligne suivant le "select" et précédant le "do" :

Mauvais :

select AAAA in \
WWWW YYYY ZZZ \   <== Pas bon
do
...
...


Bon :

select AAAA in \
WWWW YYYY ZZZ
do
...
...

0
Utilisateur anonyme
9 févr. 2010 à 17:52
ah merci beaucoup Jipicy
en effet, cela fonctionne un peu mieux déjà comme çà

j'aurais peut être d'autres questions ultérieurement
0

Discussions similaires