Bonjour,
Je souhaite créer une fonction qui génère un menu dont les choix sont transmis en paramètres à la fonction (sauf le choix Quitter)
voici la fonction:
Pour transmettre les choix en paramètres, l'idée est de créer une chaine $listeParam qui contiendrait "choix 1 choix 2 choix 3"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function Menu() { echo "Que voulez vous faire ?" echo "" for ((n=1; n<=$#; n++)) do echo "Option ("$n") : "${!n} done echo "Choix (q): Quitter" echo "" echo "" echo "Votre choix ? : "
Or vu comme ça c'est 6 paramètres qui sont transmis à la fonction (choix, 1, choix, 2, choix, 3) et non 3 (choix 1, choix 2, choix 3) à cause des espaces
Voici comment je procède:
Bien sur si je retire l'espace entre choix et $i
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 nbChoix=3 listeParam="" for ((i=1; i<=nbChoix; i++)) do listeParam=$listeParam"Choix "$i" " done Menu $listeParam
j'aurai bien Choix1 Choix2 Choix3, mais le but est de remplacer "Choix n"par du texte contenant des espaces
Code : Sélectionner tout - Visualiser dans une fenêtre à part listeParam=$listeParam"choix"$i" "
Voici ce que je souhaiterais obtenir comme résultat:
Option (1) : Choix 1
Option (2) : Choix 2
Option (3) : Choix 3
Option (q): Quitter
Si je rajoute un \:
ça sort:
Code : Sélectionner tout - Visualiser dans une fenêtre à part listeParam=$listeParam"choix\ "$i" "
Option (1) : choix\
Option (2) : 1
Option (3) : choix\
Option (4) : 2
Option (5) : choix\
Option (6) : 3
Option (q): Quitter
J'ai essayé aussi avec "eval" mais j'ai des erreurs de "commande inconnue"
Quelqu'un aurait il une idée sur la façon dont je dois procéder ?
Partager