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 27/05/2015, à 22:27

yaba64

[RESOLU]Ignorer la casse d'un paramètre

Bonjour

J'ai trouvé qu'il était possible d'ignorer la casse sur une variable comme ceci : ${VARIABLE,,}

mais j'aimerais pouvoir ignorer la casse sur un paramètre d'un script.

par exemple sur le code tout simple suivant :

if [ $1 = "marc" ]
then
         echo "Salut Marc !"
else
         echo "Salut inconnu"
fi

il faudrais qu'en lançant le script avec comme paramètre marc, Marc, MaRc...
$1 soit reconnu comme marc, j'ai essayé en faisant comme pour une variable en écrivant ${$1,,} mais bien ça ne marche pas

donc si quelqu'un à la bonne solution je suis preneur

Merci beaucoup

Dernière modification par yaba64 (Le 28/05/2015, à 08:26)


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#2 Le 28/05/2015, à 02:01

MicP

Re : [RESOLU]Ignorer la casse d'un paramètre

…J'ai trouvé qu'il était possible d'ignorer la casse sur une variable comme ceci : ${VARIABLE,,}

…en écrivant ${$1,,} mais bien ça ne marche pas…

Simple erreur d’inattention de ta part, car tu as ajouté un caractère $ de trop : Au lieu de ${$1,,} écrit plutôt ${1,,} dans ton script.

=======
Si c'est bien comme ça que c'était présenté et que tu ne l'a pas ré-interprété ou/et mal recopié,
j'ajouterai qu'il est important de bien nommer les choses : ${VARIABLE,,} aurait été mieux formulé de la façon suivante : ${nomDeVariable,,}
Ce qui aurait sans doute permis d'éviter cette confusion.

=======
NOTE : N'oublie pas de mettre un shebang en première ligne de ton script. ( Voir aussi : interpréteur de commandes )

Dernière modification par MicP (Le 28/05/2015, à 04:23)

Hors ligne

#3 Le 28/05/2015, à 07:43

yaba64

Re : [RESOLU]Ignorer la casse d'un paramètre

non non je ne me suis pas trompé, alors on va dire que je me suis mal expliqué !

$1 représente mon premier paramètre ça je me peux pas le changer, donc je ne peux pas enlever le $

et quand j'ai écrit ${VAR,,,} c'est comme ça que je l'ai trouvé dans la doc donc si tu veux pour que tout le monde comprenne mieux on peut l'appeler ${NomDeVariable,,} mais bon chacun sa façon d'appeler une variable ça me choque pas moi de la voir sous une autre forme sachant que j'avais déja modifié en VARIABLE et je vois que tu as compris de quoi il s'agissait.

Pour en revenir au problème c'est pourquoi j'ai remplacé VARIABLE ou NomDeVariable ou VAR ou LeMotQueTuVEux pas mon paramètre $1 mais c'est quelque chose qui ne marche pas d'où ma question


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#4 Le 28/05/2015, à 07:56

credenhill

Re : [RESOLU]Ignorer la casse d'un paramètre

hello
mettre $1 en maj. ou minuscule pour le test

$ set -- aaa
$ echo ${1^^}
AAA
$ set -- BbB
$ echo ${1,,}
bbb
if [ ${1,,} = "marc" ] ...

Dernière modification par credenhill (Le 28/05/2015, à 07:57)

Hors ligne

#5 Le 28/05/2015, à 08:03

pingouinux

Re : [RESOLU]Ignorer la casse d'un paramètre

yaba64 a écrit :

mais c'est quelque chose qui ne marche pas

Le mieux serait de montrer exactement ce que tu as fait et qui ne marche pas.
Sinon, tu peux faire ceci (comme te l'a indiqué MicP), avec utilisation d'une variable intermédiaire ou non

#!/bin/bash

ma_variable="$1"
echo "${1,,}"
echo "${ma_variable,,}"
$ ./le_script couCOU
coucou
coucou

Dernière modification par pingouinux (Le 28/05/2015, à 08:27)

Hors ligne

#6 Le 28/05/2015, à 08:26

yaba64

Re : [RESOLU]Ignorer la casse d'un paramètre

AAAh cool merci j'ai pigé !!!
oui je comprends vite mais faut m'expliquer longtemps lol

merci les ubuntutiens


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#7 Le 28/05/2015, à 08:29

MicP

Re : [RESOLU]Ignorer la casse d'un paramètre

#!/bin/bash

if [ "${1,,}" = "marc" ] 
then
         echo "Salut Marc !"
else
         echo "Salut inconnu"
fi

Hors ligne

#8 Le 28/05/2015, à 09:08

yaba64

Re : [RESOLU]Ignorer la casse d'un paramètre

Oui voilà c'est c'est ce que j'ai repris !
Pour info ce que j'avais pas pigé (comme d'hab ) c'est que le paramètre c'est juste une variable en fait et donc juste 1 ou 2 ou...

autant pour moi


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne