Curiosité du bash? Comparaison de chaînes

spom -  
 spom -
Bonjour à tous,

Je suis actuellement en train d'écrire un script bash qui travaille sur les hash codes de chaines de caractères.
Je suis amené à effectuer une comparaison entre un hash code recherché et un hash code produit par une commande.

Or, bizarrement, la comparaison ne fonctionne jamais, même lorsqu'elle serait censée fonctionner...et que l'affichage donne deux chaines bien identiques!
Par exemple, le code suivant me donne la sortie "pas ok", alors que le hash code calculé (hashComputed) est égal au hashcode recherché (hashMatching). Erreur dans la comparaison ?

#!/bin/sh

echo "X83424S-aac" | openssl md5 | tr -d '\n' > $hashComputed
#Je supprime le caractère de saut de ligne renvoyé par la commande

echo "$hashComputed---"

hashMatching='03eae433de5ae5b4b48d751d8e1739e3'
echo "$hashMatching---"

#Les affichages sont identiques!

if "$hashComputed" == "$hashMatching"; then
echo "ok"
else
echo "pas ok"
fi

Merci à tous ceux qui auraient des idées!
A voir également:

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello

#!/bin/sh
c'est le Bourne shell, pas bash, utiliser #!/bin/bash

echo "X83424S-aac" | openssl md5 | tr -d '\n' > $hashComputed
redirige dans un fichier, mais pas dans une variable, utiliser
en sh ou bash: hashComputed=`echo "X83424S-aac" | openssl md5 | tr -d '\n'`
en bash: hashComputed=$(echo "X83424S-aac" | openssl md5 | tr -d '\n')

pour le test, un seul =
if ["$hashComputed" = "$hashMatching" ]; then

essaye en sh
#!/bin/sh

hashComputed=`echo "X83424S-aac" | openssl md5 | tr -d '\n'`
#Je supprime le caractère de saut de ligne renvoyé par la commande

echo "$hashComputed---"

hashMatching='03eae433de5ae5b4b48d751d8e1739e3'
echo "$hashMatching---"

#Les affichages sont identiques!

if [ "$hashComputed" = "$hashMatching" ]; then
echo "ok"
else
echo "pas ok"
fi
0
spom
 
Hello dubcek!
Merci pour ta réponse, petite subtilité, c'était bien vu!

Plus de problème donc, encore merci:)

@+
0