Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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! smile

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 wink; 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