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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
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:23] David5647 [Introduction] |
||
---|---|---|---|
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 219: | Ligne 223: | ||
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 238: | ||
# 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 |