Problème d'égalité entre deux chaines de caractères
Résolu
Ouss91
-
Ouss91 -
Ouss91 -
Bonjour,
Je débute en Bash et ca fait toute la journée que je travaille sur un bout de code que voici :
echo "Qui est le réalisateur de Gran Torino ?"
read reponse
reponseVrai=$(cat cinema_bdd.txt | grep "Gran Torino" | awk -F: '{print $5}')
if [[ "$reponse" == "$reponseVrai" ]]
then
echo "correspond"
else
echo "ne correspond pas"
fi
Le problème est que même quand je saisi la bonne réponse, ca affiche "ne correspond pas".
J'ai décomposé le code et tout marche. A la suite de plusieurs test que j'ai fait, j'en ai conclu que le problème vient de là if [[ "$reponse" == "$reponseVrai" ]]
Des idées ?
MERCI !
Je débute en Bash et ca fait toute la journée que je travaille sur un bout de code que voici :
echo "Qui est le réalisateur de Gran Torino ?"
read reponse
reponseVrai=$(cat cinema_bdd.txt | grep "Gran Torino" | awk -F: '{print $5}')
if [[ "$reponse" == "$reponseVrai" ]]
then
echo "correspond"
else
echo "ne correspond pas"
fi
Le problème est que même quand je saisi la bonne réponse, ca affiche "ne correspond pas".
J'ai décomposé le code et tout marche. A la suite de plusieurs test que j'ai fait, j'en ai conclu que le problème vient de là if [[ "$reponse" == "$reponseVrai" ]]
Des idées ?
MERCI !
A voir également:
- Problème d'égalité entre deux chaines de caractères
- Nombre de jours entre deux dates excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Deux ecran pc - Guide
3 réponses
Salut,
peut se réduire à
Ensuite enlève les quotes dans ton "if" :
Et pour finir rajoute
Le fichier cinema_bdd.txt est bien au format UNIX ?
$(cat cinema_bdd.txt | grep "Gran Torino" | awk -F: '{print $5}')
peut se réduire à
$(awk -F: '/Gran Torino/ {print $5}' cinema_bdd.txt)
Ensuite enlève les quotes dans ton "if" :
if [[ $reponse == $reponseVrai ]]
Et pour finir rajoute
set -xvaprès ton shebang pour débuguer ton code.
Le fichier cinema_bdd.txt est bien au format UNIX ?
Bonsoir zipe31,
Merci pour ton aide.
Je viens de régler le problème : c'était dans le fichier texte :
Gran Torino:1h56:2008:Drame Thriller:Clint Eastwood
J'ai rajouté un ':' à la fin de la ligne et le code à marcher.
Le programme agissait sur le dernier champ, or il n'y avait pas de délimiteur, ce qui posait donc problème à mon humble avis
Merci pour ton aide.
Je viens de régler le problème : c'était dans le fichier texte :
Gran Torino:1h56:2008:Drame Thriller:Clint Eastwood
J'ai rajouté un ':' à la fin de la ligne et le code à marcher.
Le programme agissait sur le dernier champ, or il n'y avait pas de délimiteur, ce qui posait donc problème à mon humble avis