IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

script bash avec menu et sous menu


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut script bash avec menu et sous menu
    bonjour

    j ai cree un script bash avec menu et sous menu je rencontre un probleme concernant l affichage en effet au niveau du menu la selection 1 et 2 fonctionnent mais qd je selectionne le 3 j ai un message d erreur wrong answer j ai beau chercher je ne vois pas mon erreur quelqu un pourrait m aider

    merci davance

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    #!/bin/bash
     
    printf " \n \033[36m"
    cat << "EOF"
     
        #                                                         ###### 
       # #    ####  ##### # #    # # ##### ######     ####  #     #    #  
      #   #  #    #   #   # #    # #   #   #         #    # #          #   
     #     # #        #   # #    # #   #   #####     #      #         #    #  
    EOF
    printf " \n \033[0m \n"
     
    #  STATUS FUNCTION
    function status_function {
                            # this function manages the sub-menu and asks to choose between Multi gp pa . 
     
     PS3=' Status?1.Multi 2.GP 3.Pa 4.previous_menu5.quit '
     
                            # this function takes $display( $1 in this function) as an argument.  
                            select status in Multi GP Pa previous_menu quit
                           do
                                    case $status in    # contains $status
                                            Multi)
                                        printf " \n \033[36m"
                                             if [ "$1" = "Multi" ]
                                                            then
                                                    cat << "EOF"
     
     
       ___       _          ___  ___      _ _   _                    
      |/|___/ \_|  |_/\__,_|_|\__|_|___/\___|\__, |___/
                                                              | |    
                                                              |_|    
    EOF
                                             printf " \n \033[0m \n"
     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    esac
     
    case $status in    # contains $status
                                            GP)
     
     
     
                                             printf " \n \033[36m"
                                             cat << "EOF"
     
       ___       _           _____ ______ _   _ 
      |_  |     | |         |  __ \| ___ \ | | |
        | | ___ | |__  ___  | |  \/| |_/ / | | |
     
     
    EOF
                                                                            printf " \n \033[0m \n"
     
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     
    case $status in    # contains $status
                                            Pa)
                                            printf " \n \033[36m"
                                            cat << "EOF"
     
     
       ___       _      ______               _ _      _           
      |_  |     | |     | ___ \             | | |    | |          
        | | ___ | |__   | |_/ /_ _ _ __ __ _| | | ___| | ___  ___ 
        | |/ _ \| '_ \  |  __/ _` | '__/ _` | | |/ _ \ |/ _ \/ __|
     
     
    EOF
                                                        printf " \n \033[0m \n"
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     
    esac
    ;;
                                           previous_menu)
                                                    break 2         # breaking out of 2 selects     
                                                    ;;
                                           quit)
                                                   echo -e "exiting \n"
                                                    break 5     # breaking out of while loops   
                                                    ;;
                                            *)
                                                    echo -e "wrong answer \n"
     break 5     # breaking out of while loops   
                                                    ;;
                                            *)
                                                    echo -e "wrong answer \n"
                                                    ;;
                                    esac
                               # end of  status select
                            done
    }
     
    ###################################################" MAIN PROGRAM
     
    # main menu : the user is required to choose the display selection )
    while true 
    do
    ps3='Display? 1.Multi 2.GP 3.Pa 4.previous_menu 5.quit '
     
    select display in Multi GP Pa previous_menu quit
     
    do
     
    # PS3 prompt change. Used with the select.
     
    # display by status
            case $display in
     
            Multi|GP|Pa|previous_menu|quit)
     
                           status_function $display
            ;;
    #                       ;;
                    quit)
                            echo "exiting"
                            # break 2 : because exiting 2 structures : the select and the while loop.
                            break 2
                            ;;
     *)
                            echo "wrong answer"
                        ;;
    esac  # end of case     
    done  # end of global select 
    done  # end of while true
    ############################################## END OF MAIN PROGRAM

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    le if n'est pas fermé.
    on se demande d'ailleurs à quoi il sert.

    et, apparemment, tu n'as pas compris comment fonctionne case/esac.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Probleme script bash - redirection fichier..
    Par origan31 dans le forum Linux
    Réponses: 1
    Dernier message: 25/08/2007, 19h08
  2. Problème avec script bash
    Par jejerome dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 26/11/2006, 22h32
  3. Problème script BASH
    Par AzertyH dans le forum Linux
    Réponses: 3
    Dernier message: 01/05/2006, 15h20
  4. Script Bash sous linux ? problemes
    Par MonsieurAk dans le forum Linux
    Réponses: 4
    Dernier message: 14/03/2006, 16h41
  5. Problème script Bash
    Par Sphost dans le forum Linux
    Réponses: 10
    Dernier message: 26/07/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo