Pourquoi mon bash chaîne de la comparaison de deux chaînes identiques toujours faux?

Je suis en train d'écrire un petit script tout simple à la requête d'une connexion 3g, et si la connexion a chuté, de susciter une reconnexion.

Mon problème est dans le contrôle de la sortie de la commande - deux apparemment l'égalité des chaînes de caractères ne sont pas évaluées comme étant égales. Je suis sûr qu'il ya un noob erreur quelque part ici!

#!/bin/bash

echo "Checking connection"
a="Not connected."
b=$(./sakis3g status --console)

if [[ "$a"!="$b" ]]; then 
    echo "Strings not equal:"
    echo "$a"
    echo "$b"
else 
    echo "Strings equal!!"
fi

La sortie lors de l'exécution:

user@mypc:~$ ./test_3g.sh 
Checking connection
Strings not equal:
Not connected.
Not connected.

Lors de l'exécution de ./test_3g.sh | cat -A:

user@mypc:~$ ./test_3g.sh | cat -A
Checking connection$
Strings not equal:$
Not connected.$
Not connected.$
Il n'y a pas de superflu et de saut de ligne à la fin, non?
Essayez ./test_3g.sh | cat -A. Si votre cat ne prend pas en charge la -A option, essayez ./test_3g.sh | cat -v.
Je ne pense pas qu'il soit superflu d'espaces, mais qui seraient heureux d'être corrigés. @Keith, j'ai ajouté de la sortie du tuyau pour chat -à la question.

OriginalL'auteur jozzas | 2011-08-29