logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:david5647:tutos:bash-fonctions-liste-de-choix-pour-script-interactifs [24/03/2021 01:40]
David5647 [Choix parmi liste : complet]
utilisateurs:david5647:tutos:bash-fonctions-liste-de-choix-pour-script-interactifs [24/03/2021 17:53] (Version actuelle)
David5647 [Choix parmi liste numérotée]
Ligne 19: Ligne 19:
  
 Finalement, dans la dernière partie (exemple), vous trouverez un script compilant toutes les fonctions à des fins de démonstration. Finalement, dans la dernière partie (exemple), vous trouverez un script compilant toutes les fonctions à des fins de démonstration.
 +
 +**bonus**: pour dé-commenter les scripts:
 +<code user> cat script.sh | sed '/​^\s*#/​d'​ | sed '​s/#​.*$//'​ > script_sans commentaires.sh
 +</​code>​
  
 ===== Question binaire ===== ===== Question binaire =====
Ligne 195: Ligne 199:
  
  
-===== Choix parmi liste numérotée =====+===== Choix parmi liste numérotée ​: build-in select ===== 
 + 
 +la build-in select effectue une boucle infinie demandant de choisir parmi une liste, 
 +vous pouvez insérer une instruction **case** ou un nouveau **select** pour faire des sous menus. 
 + 
 +=== Utilisation === 
 + 
 +<file bash _> 
 +numberWithSelect "Votre choix?"​ "arg1 arg2 arg3 arg4 arg5 arg6"​ 
 +</​file>​ 
 + 
 +<​code>​Votre choix? 
 + 1) arg1 
 + 2) arg2 
 + 3) arg3 
 + 4) arg4 
 + 5) arg5 
 + 6) arg6 
 + 
 +#? 5 
 +Vous avec choisi arg5 
 +</​code>​ 
 + 
 +=== Script === 
 + 
 +<file bash numberWithSelect>​ 
 +numberWithSelect () { 
 +     
 +    QUESTION=$1 
 +    read -ra OPTIONS ​ <<<​ "​$2"​  
 + 
 +    echo $QUESTION 
 +    select ANSWER in ${OPTIONS[@]};​ do  
 +        if [ -n "​$ANSWER"​ ]; then 
 +            echo "Vous avec choisi $ANSWER"​ 
 +            break 
 +        else 
 +            echo "Il n'y a pas de tel index!"​ 
 +        fi 
 +    done 
 + 
 +
 + 
 +</​file>​ 
 + 
 + 
 +===== Choix parmi liste numérotée avec valeur par défaut ​=====
  
 ==== Utilisation ==== ==== Utilisation ====
Ligne 219: Ligne 269:
 numberedMenu () { numberedMenu () {
  
-    # $1 = question to ask +    # $1 = Question à poser 
-    # $2 = elements separted by space +    # $2 = liste des éléments séparés par un espace 
-    # S3 (optionnal) = index of defaut element+    # S3 (optionnal) = index de l'​élément par défaut
  
     QUESTION=$1     QUESTION=$1
-    read -ra OPTIONS ​ <<<​ "​$2"​ # Keep options ​list+    read -ra OPTIONS ​ <<<​ "​$2"​ # Obtention de la liste de options
  
-    if [ -n "​$3"​ ]; then+    if [ -n "​$3"​ ]; then       # Si donné par l'​utilisateur (c-à-d variable non vide)
         DEFAULT=$3         DEFAULT=$3
-    else+    else                       # Sinon, valeur par défaut
         DEFAULT=1         DEFAULT=1
     fi     fi
Ligne 234: Ligne 284:
     # Show      # Show 
     printf "​\n"​     printf "​\n"​
-    for i in $(seq ${#​OPTIONS[@]});​ do +    for i in $(seq ${#​OPTIONS[@]});​ do                        # on compte le nombre d'​options 
-        printf ' ​   %3s %s\n' "​$i)"​ "​${OPTIONS[$(($i-1))]}"​+        printf ' ​   %3s %s\n' "​$i)"​ "​${OPTIONS[$(($i-1))]}" ​  # On affiche la position dans la liste et la valeur de l'​option
     done     done
     printf '​\n'​     printf '​\n'​
  
     # ask user     # ask user
-    printf "​\x1b[1;​32m$QUESTION\x1b[0m"​ +    printf "​\x1b[1;​32m$QUESTION\x1b[0m" ​         # Un peu de couleur (gras + vert) 
-    read -p " [$DEFAULT] : " -r INPUT +    read -p " [$DEFAULT] : " -r INPUT            #​ Demande valeur sans retour à la ligne 
-    INPUT=${INPUT:​-${DEFAULT}}+    INPUT=${INPUT:​-${DEFAULT}} ​                  # Substitut par $DEFAULT si réponse vide
  
     # Collect result     # Collect result
utilisateurs/david5647/tutos/bash-fonctions-liste-de-choix-pour-script-interactifs.1616546418.txt.gz · Dernière modification: 24/03/2021 01:40 par David5647

Pied de page des forums

Propulsé par FluxBB