#1 Le 25/05/2011, à 11:31
- Amarokk
[Résolu] Affichage des options d'un select
Bonjour à tous
Je développe actuellement un script phat (en bash) pour le projet de mon école, et je fais plusieurs gros select. Dans certains de ces select j'ai mis l'option "revenir au menu précédent", et du coup j'utilise un "continue 2".
Et bien sûr, quand je sélectionne cette option, ça me met juste le prompt sans avoir les choix qui précèdent (il faut alors que j'appuie sur Enter pour voir afficher ces choix, et c'est moche).
Y-a t-il un moyen d'afficher ce menu directement, comme si on venait d'entrer dans le select?
Voici un exemple de script pour tester ce probleme que je rencontre:
select choix in "continue" "break" "exit";do
case $choix in
"continue")
select choix2 in "continue" "fin"
do
if [[ $choix2 == "continue" ]]
then
continue 2
fi
done;;
"break") break;;
esac
done
D'autre part, dans mon vrai script, j'utilise pas les "case" mais un simple "if [[ $choix == "choix1" ]].. ca marche très bien, mais ça se trouve il y a une autre façon de gérer les choix pouvant régler par la même occasion mon principal probleme?
[Merci d'avance pour votre aide!
Dernière modification par Amarokk (Le 28/05/2011, à 20:43)
Ubuntuboy since 2007
Hors ligne
#2 Le 27/05/2011, à 12:53
- Hizoka
Re : [Résolu] Affichage des options d'un select
On peut envisager l'utilisation de fonction :
function select_deux
{
select choix_deux in "un" "exit"
do
case ${choix_deux} in
"un") select_un ;;
"exit") exit ;;
esac
done
}
function select_un
{
select choix_un in "deux" "exit"
do
case ${choix_un} in
"deux") select_deux ;;
"exit") exit ;;
esac
done
}
select_un
Utilise case, c'est plus simple/court que plein de if.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 27/05/2011, à 12:57
- Hizoka
Re : [Résolu] Affichage des options d'un select
regarde un de mes anciens messages : http://forum.ubuntu-fr.org/viewtopic.php?id=356180
Dernière modification par Hizoka (Le 27/05/2011, à 12:58)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 27/05/2011, à 19:15
- Amarokk
Re : [Résolu] Affichage des options d'un select
Merci pour ta réponse! (je commençais à désespérer).
En fait il s'agit là de simuler un serpent qui se mord la queue... Je pensais que ça allait être plus simple que ça, quelque chose que j'avais du zapper dans mon apprentissage du bash. Je comprend pas que ce soit pas quelque chose d'inclus de base, c'est tellement utilisé! Inclure des fonctions en cascade m'alourdirait vraiment le script, déjà qu'il fait plus de 300 lignes.. En tout cas merci de m'avoir apporté tes lumières
Ubuntuboy since 2007
Hors ligne
#5 Le 27/05/2011, à 19:52
- Totor
Re : [Résolu] Affichage des options d'un select
select menu1 in choix1 menu2 quitter
do
case ${REPLY} in
1) echo choix1;;
2) select menu2 in choix2.1 choix2.2 retour
do
case ${REPLY} in
1) echo choix2.1;;
2) echo choix2.2;;
3) break;;
esac
read </dev/null
done;;
3) break;;
esac
read </dev/null
done
-- Lucid Lynx --
Hors ligne
#6 Le 27/05/2011, à 19:52
- Hizoka
Re : [Résolu] Affichage des options d'un select
ca passe aussi ça...
while true
do
select choix in "un" "deux" "exit"
do
case ${choix} in
un) echo "un"; break ;;
deux) echo "deux"; break ;;
exit) break 2 ;;
esac
done
done
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#7 Le 28/05/2011, à 09:42
- Amarokk
Re : [Résolu] Affichage des options d'un select
Il y a donc plusieurs moyen de gérer ça (après tout il fallait juste réfléchir, mais je suis pas encore assez à l'aise avec les scripts bash). Merci pour vos contributions, ce topic pourra sûrement servir à d'autres! Et moi je pense que je vais adopter ta dernière proposition, Hizoka
Ubuntuboy since 2007
Hors ligne
#8 Le 28/05/2011, à 10:06
- Hizoka
Re : [Résolu] Affichage des options d'un select
ajoute un [resolu] dans le titre de ton topic alors
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne