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!

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
  2. spom
     
    Hello dubcek!
    Merci pour ta réponse, petite subtilité, c'était bien vu!

    Plus de problème donc, encore merci:)

    @+
    0