#1 Le 16/03/2015, à 00:12
- Isoveli
[Résolu] Utilisation de la casse dans les variables d'un script bash
Bonjour à tous!
Depuis un certain temps, je me suis mis à développer un script de poche qui exécute des programmes sur l'ordinateur à l'aide de termes simples, (Exemple, taper Gimp exécute Gimp...) C'est très basique, j'en convient, mais j'arrive quand même à buter sur un problème. J'essaie de faire en sorte que le script ignore la casse des variables, par exemple, taper gimp aurait le même effet que taper Gimp, soit ouvrir l'application...Je vous mets une petite section du script, si ça peut aider.
echo -n "Parlez!: "
read a
elif [ $a = "Gimp" ]
then
echo "Alors, on se sent créatif?"
gimp
else
echo "Je ne vous comprend pas."
fi
J'ai essayé d'incorporer la commande set -s nocaseglob, au script, sans succès. (À moins que je me sois trompé dans son emplacement dans le script)
Si le problème a déjà été résolu, vous n'avez qu'à m'envoyer le lien en réponse et je m'occuperai de marquer le message comme "Résolu"
Merci à l'avance pour vos réponses!
Dernière modification par Isoveli (Le 16/03/2015, à 22:42)
Je suis un utilisateur d'Ubuntu 14.04, je ne vois pas ce qu'il y a de plus à dire.
Hors ligne
#2 Le 16/03/2015, à 00:26
- pingouinux
Re : [Résolu] Utilisation de la casse dans les variables d'un script bash
Bonsoir,
Si c'est du bash
read a
if [ "${a,,}" = "gimp" ]
then
echo "C'est gimp"
gimp
else
echo "Ce n'est pas gimp"
fi
${a,,} met le contenu de a en minuscules.
Hors ligne
#3 Le 16/03/2015, à 00:28
- Watael
Re : [Résolu] Utilisation de la casse dans les variables d'un script bash
salut,
nocaseglob fonctionne dans le Développement des chemins
fais plus simplement ainsi :
$ v="Bla bLa"
$ v="${v,,}"
test "$v" = "bla bla" && echo ok || echo ko
ok
ou utilise nocasematch avec un case ; ce serait d'ailleurs mieux d'après ce que j'ai compris de tes intentions.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 16/03/2015, à 00:30
- Braun
Re : [Résolu] Utilisation de la casse dans les variables d'un script bash
Bonsoir,
J'avais rencontré le problème en d'autre langage, la solution retenue était alors de tout convertir dans une casse donnée, e.g. lower case pour rester poli. Tant que tu n'utilises pas de caractères hexagonaux ou exotiques je pense que ça devrait fonctionner aussi en bash.
Voir par exemple ceci sur stackoverflow.
Dernière modification par Braun (Le 16/03/2015, à 00:30)
Hors ligne
#5 Le 16/03/2015, à 22:41
- Isoveli
Re : [Résolu] Utilisation de la casse dans les variables d'un script bash
Merci beaucoup pour vos réponses rapides! J'ai fait des tests, et tout fonctionne à merveille (Je ne sais pas à quoi je m'attendais d'autre, honnêtement.)
Dernière modification par Isoveli (Le 16/03/2015, à 22:49)
Je suis un utilisateur d'Ubuntu 14.04, je ne vois pas ce qu'il y a de plus à dire.
Hors ligne