Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/05/2011, à 12:31

Amarokk

[Résolu] Affichage des options d'un select

Bonjour à tous smile
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, à 21:43)


Ubuntuboy since 2007

Hors ligne

#2 Le 27/05/2011, à 13: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, à 13: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, à 13:58)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 27/05/2011, à 20: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 smile


Ubuntuboy since 2007

Hors ligne

#5 Le 27/05/2011, à 20: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, à 20: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, à 10: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! smile Et moi je pense que je vais adopter ta dernière proposition, Hizoka wink


Ubuntuboy since 2007

Hors ligne

#8 Le 28/05/2011, à 11:06

Hizoka

Re : [Résolu] Affichage des options d'un select

ajoute un [resolu] dans le titre de ton topic alors smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne