Lorsqu'on écrit des scripts Bash, et plus particulièrement lorsque l'on souhaite avoir la confirmation de l'utilisateur pour exécuter une tâche précise, avoir un système de confirmation de type Oui/Non peut-être intéressant. Voyons comment en mettre un en place très facilement.
Le principe est simple : on affiche une question à l'utilisateur, et ce dernier doit répondre par oui (yes
ou y
) ou non (no
ou n
). Suivant son choix, le script exécutera certaines tâches.
En version brute de coffre, on pourrait utiliser ce genre de script :
#!/bin/bash
read -r -p "Do you like apples? [y/N] " response
case "$response" in
[yY][eE][sS]|[yY])
echo "Good!"
;;
*)
echo "You miss something!"
;;
esac
Ici, on assigne ce que l'utilisateur aura répondu à la question à la variable response
. Puis un simple case
vérifie la réponse (yes ou no).
Pour plus de clarté et de réutilisabilité, il peut être préférable de créer une fonction renvoyant un booléen pour savoir si l'utilisateur a répondu oui ou non à la question demandée.
#!/bin/bash
echo
echo "== Script avec confirmation =="
echo
confirm()
{
read -r -p "${1} [y/N] " response
case "$response" in
[yY][eE][sS]|[yY])
true
;;
*)
false
;;
esac
}
if confirm "Do you like apples?"; then
echo "Good!"
else
echo "You miss something!"
fi
C'est tout simple et ce bout de code peut servir dans vos scripts !