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 !