[SHELL] Options de la commande READ ?
Résolu
ric025
-
ric025 -
ric025 -
Bonjour,
J'ai un petit soucis avec READ. Enfin, je ne sais pas si c'est avec cette commande ^^ Je m'explique.
J'ai ceci par exemple :
J'aimerais en fait que le "Read" ne prenne pas en compte la casse. C'est-à-dire, que là, en l'état actuel, si je tape "ric", cela me sort du programme. Si je tape "RIC", cela me dit bien "Salut RIC".
Donc je voudrais que même en tapant "ric" ou "Ric", cela me dise "Salut ric" ou "Salut Ric" ... Possible ?
Merci. :)
Là où flotte le drapeau Comtois, qui que tu sois, tu es chez toi !
"Plains ceux qui ont peur car ils créent leur propre terreur"
J'ai un petit soucis avec READ. Enfin, je ne sais pas si c'est avec cette commande ^^ Je m'explique.
J'ai ceci par exemple :
#!/bin/bash
read -p "Tape ton prénom : " nom
if [ $nom = RIC ]
then
echo Salut $nom
else exit
fi
J'aimerais en fait que le "Read" ne prenne pas en compte la casse. C'est-à-dire, que là, en l'état actuel, si je tape "ric", cela me sort du programme. Si je tape "RIC", cela me dit bien "Salut RIC".
Donc je voudrais que même en tapant "ric" ou "Ric", cela me dise "Salut ric" ou "Salut Ric" ... Possible ?
Merci. :)
Là où flotte le drapeau Comtois, qui que tu sois, tu es chez toi !
"Plains ceux qui ont peur car ils créent leur propre terreur"
5 réponses
-
salut,
oui, cela ne dépend pas de la commande read.
il y a une option du shell bash à positionner, et utiliser les double crochets#!/bin/bash read -p "Tape ton prénom : " nom shopt -s nocasematch if [[ $nom = ric ]] then echo "Salut $nom" else exit fi-
-
En fait, j'ai une autre question :) Cette commande "shopt" s'utilise de quelle façon ? Obligatoirement après un "Read" ? après cela reste en mémoire ou non ?
Merci
++
EDIT : Exemple ici :
#!/bin/bash #début read -p "Tape ton nom :" nom read -p "Tape ton prénom :" prenom clear tableau=('ric' 'xxx' 'jean' 'yyy' 'pierre', 'zzz') if [ $prenom = ${tableau[0]} ] && [ $nom = ${tableau[1]} ] then echo Bonjour à toi $prenom elif [ $prenom = ${tableau[2]} ] && [ $nom = ${tableau[3]} ] then echo Bonjour à toi $prenom elif [ $prenom = ${tableau[4]} ] && [ $nom = ${tableau[5]} ] then echo Bonjour à toi $prenom else echo Utilisateur inconnu ! && exit fi
* Pour ne pas que la casse soit prise en compte partout :)
* Et sinon, y'a pas plus simple que le tableau, si je dois entrer des noms et prénoms plus nombreux ?
++ -
-
oui, elle reste activée, pour la désactiver : shopt -u nocasematch
ou utiliser la variable BASHOPTS, voir man bash
ou utiliser ma méthode au cas par cas #3
oui, le tableau est le meilleur stockage pour une liste de valeurs -
-
-
Salut,
#!/bin/bash read -p "Tape ton prénom : " nom if [[ ${nom} =~ [Rr][Ii][Cc] ]] then echo Salut ${nom} else exit fi
;-))
-
hello
#!/bin/bash read -p "Tape ton prénom : " nom if [ ${nom,,} = ric ] then echo "Salut $nom" else exit fi -
ajoutons, par souci de clarté, que entre crochets simples les guillemets autour des variables sont plus que chaudement recommandés.
alors qu'ils ne sont pas nécessaires entre double crochets. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -