Bash:choix multiples de case puis utilisation

kedal7 Messages postés 206 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
Bonsoir,

je voudrais savoir comment réaliser un script en bash permettant à l'utilisateur de choisir plusieurs programmes qu'il souhaite installer et ensuite les installer. Avec un choix q|Q pour quitter et i|I pour lancer l'installation.

J'en suis à la partie "choix multiple". J'ai déjà écris ceci mais il me semble pas que tout soit juste.

merci d'avance !

#!/bin/bash

echo -e "Choisissez le/les programmes à installer.\n
- 1 pour le programme 1\n
- 2 pour le programme 2\n
Appuyez sur la touche souhaiter, puis faites ENTER."
read Touche

while (($Touche != i|I) | ($Touche != q|Q)); do

case "$Touche" in

1) programe1 = 1;; # je ne sais pas comment mettre ici pour pouvoir réutiliser après
2) programme1 =1;; # je ne sais pas comment mettre ici pour pouvoir réutiliser après

done

if programe1 = 1 # pour valider l'installation du programme1

fi

if programe2 = 1 # pour valider l'installation du programme1

fi

# lance l'installation de tout les programmes sélectionnés
Configuration: Windows XP/Ubuntu 8.04
Firefox 2.0.0.14

5 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Tu peux t'inspirer de ceci ,avec utilisatons de vecteurs (array) dans bash. Evidemment on y perd en portabilité, mais bash c'est bash, non ?
    
    #!/bin/bash
    declare -a PROGRAMS
    PROGRAMS=([1]="/bin/ls ."  [2]="/bin/ls -l .")
    
    while  read -p "Choisissez le/les programmes à installer.
    - 1 pour le programme 1
    - 2 pour le programme 2
    Appuyez sur la touche souhaiter, puis faites ENTER." touche ; do
            case $touche in
                    q|Q)
                            exit;;
                    1|2)
                            eval ${PROGRAMS[$touche]} ;;
                    *)
                            echo "Choix non valide"
            esac
    done
    

    Tu placeras bien entendu le prompt dans une variable dédiée.
    Ceci n'est qu'une piste et une ébauche bien entendu...
    Bon amusement.

    man 1 bash
    4