Rendre l'exécution d'un choix utilisateur insensible à la casse (shopt)

Dans un script, lorsque ce dernier demande à l'utilisateur de choisir et d'entrer une lettre pour déclencher une action, il peut parfois être très utile de rendre la réponse de l'utilisateur insensible à la casse (majuscules/minuscules).

Exemple, l'utilisateur doit rentrer la lettre 'O' (pour oui).. S'il entre 'o', ça ne fonctionne pas, puisque les systèmes Unix sont sensibles à la casse.

La commande 'shopt' est très utile pour régler le problème :


Exemple de script avec shopt

shopt -s nocasematch # Activer la correspondance sans tenir compte de la casse

read -p 'Voulez-vous continuer ? (O/N) : ' reponse

case $reponse in
    O)
        echo 'Vous avez choisi Oui.'
        ;;
    N)
        echo 'Vous avez choisi Non.'
        ;;
    *)
        echo 'Choix invalide.'
        ;;
esac

shopt -u nocasematch # Désactiver la correspondance sans tenir compte de la casse

⬆️ Retour en haut de la page