Bonjour,
Je sais que vu le titre, on se dit que le problème a déjà été abordé 1000 fois, et ce n'est pas complètement faux, seulement j'ai beau avoir, je pense, tout essayé de ce qui est proposé un peu partout, et mon problème est toujours d'actualité et je ne comprends vraiment pas pourquoi.
Voilà mon problème, j'ai une variable contenant une chaine de caractère qui est retournée par un petit script SQL, je la nommerai $reco_result
JE SAIS quelle est sa valeur à l'heure actuelle, en l'occurrence "MANAGED REAL TIME APPLY" (sans les double quote).
J'ai écrit une petite condition pour vérifier cette valeur comme suivant :
Et je n'ai jamais le résultat OK que j'attends...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ $reco_result == "MANAGED REAL TIME APPLY" ]] then echo "OK" fi
J'ai essayé cette condition dans tous les sens comme suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ "$reco_result" == "MANAGED REAL TIME APPLY" ]] > then > echo "OK" > fi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ $reco_result = "MANAGED REAL TIME APPLY" ]] > then > echo "OK" > fiJ'ai ensuite stocké la string MANAGED REAL TIME APPLY dans une variable $manag pour tester, mais pas mieux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if [[ "$reco_result" != 'MANAGED REAL TIME APPLY' ]] > then > echo "KO" > fi KO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ "$reco_result" = "$manag" ]] > then > echo "OK" > fi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ $reco_result = $manag ]] > then > echo "OK" > fiEn résumé quand je teste l'égalité, le echo ne s'exécute pas, quand je teste l'inégalité, le echo s'exécute bien, donc pour le système les deux strings sont vraiment différentes alors que pour moi elles sont identiques, j'ai revérifiée en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [ "$reco_result" = "$manag" ] > then > echo "OK" > fi
Enfin j'ai même été jusqu'à envoyer les résultats de mes variables dans des fichiers textes que j'ai édités avec Vi, puis en faisant un :set list pour voir dans chaque fichier s'il n'y avait pas un espace ou un caractère de fin de ligne, mais non rien. Même un diff de ces deux fichiers textes ne me remonte aucune différence donc je ne comprends vraiment pas pourquoi ma condition ne renvoie pas l'égalité...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo $reco_result ; echo $manag MANAGED REAL TIME APPLY MANAGED REAL TIME APPLY
Help ?
Merci d'avance.
Bonne journée.
Partager