Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arrêt de l'exécution d'un script bash

Utilisation d'un menu et d'un sous-menu avec select

    20 octobre 2022 à 14:22:46

    Bonjour,

    Voici un script test. Quand je sélectionne une option de  "Commandes", pwd ou curl s'affiche et on sort du programme. La commande "Afficher la date" ne s'affiche pas. Elle s'affiche simplement quand je valide "Exit" dans le menu principal, ce qui semble logique. Qui saurait comment exécuter la commande suivante "Afficher la date" après avoir choisi et exécuté une précédente commande ( pwd, ou curl) ?

    #!/bin/bash 
    # commandes.sh 
    # Essai de menu et sous-menu 
    
    
    # Sélection
    PS3='Faites votre choix: '
    options=("commandes" "Exit")
    select opt in "${options[@]}"
    do
    	if [ "$opt" == "Exit" ] ; then
        break
        fi
    
        case $opt in
            "commandes")
             PS3='Quel choix ?'
    	options=("pwd" "curl" "Quit")   
    	select model in "${options[@]}" 
    	do 		
    		 case $model in
    			"pwd")
    				echo "pwd va s'afficher'"
    				 pwd
    				 break ;;
    				 				 					                             
    			"curl")           
    				echo "curl va s'afficher"
    				curl ifconfig.co/json    
    				break;; 
    			"Quit")  
    			 exit
    			;;   
    		*) echo "invalid option $REPLY";;                      
    		esac
    	done             
         exit   
        esac
    done  
    
    # afficher la date
    	 
    	date +"Aujourd'hui, nous sommes le %A %d %B. Il est %T. C'est le %je jour de l'année." 



    -
    Edité par BernardMehaut 20 octobre 2022 à 14:23:33

    • Partager sur Facebook
    • Partager sur Twitter
      20 octobre 2022 à 20:10:13

      salut,

      pourquoi sors-tu du script après la "boucle" commandes ?

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        21 octobre 2022 à 7:34:01

        Je n'en sais rien ! Je voudrais que la suite du script soit lue et que la date s'affiche.

        Comme tu as pu le constater, je ne suis pas un pro qui ne maîtrise pas tout. Je me suis inspiré de ce que j'ai pu glaner ici et là. Il doit y avoir une erreur quelque part.

        Mon objectif est de sélectionner "Commandes" puis "pwd" par ex. pour ensuite voir la commande suivante "date..." s'exécuter.

        Lors de l'exécution, le choix "Commandes" "pwd" indique bien le chemin (pwd) comme attendu. Par contre, le programme s'arrête sans exécuter la commande suivante "date...".

        Si je sélectionne "Exit" au démarrage, on sort du menu et le programme affiche la commande suivante "date..." (cf. ci-dessous)

        1) commandes
        2) Exit
        Faites votre choix: 2
        Aujourd'hui, nous sommes le jeudi 20 octobre. Il est 22:08:41. C'est le 293e jour de l'année.
        
        
        ------------------
        (program exited with code: 0)
        Press return to continue



        • Partager sur Facebook
        • Partager sur Twitter
          21 octobre 2022 à 11:31:14

          Il doit y avoir une erreur quelque part.

          oui, celle que je t'ai signalée : il y a un exit après la "boucle" commandes, qui ne permet pas d'atteindre date.

          -
          Edité par dantonq 21 octobre 2022 à 15:56:49

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

          Arrêt de l'exécution d'un script bash

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown