web-dev-qa-db-fra.com

égalité de chaîne bash

Dans bash, quelle est la différence, le cas échéant, entre les opérateurs de test égal et double égal?

[[ "a" = "a" ]] && echo equal || echo not-equal
[[ "a" == "a" ]] && echo equal || echo not-equal
[[ "a" = "b" ]] && echo equal || echo not-equal
[[ "a" == "b" ]] && echo equal || echo not-equal

résulte en:

equal
equal
not-equal
not-equal
120
brianegge

Il n'y a pas de différence, == est un synonyme de = (pour les personnes en C/C++, je suppose). Voir ici , par exemple.

Vous pouvez revérifier juste pour être vraiment ou pour votre intérêt en regardant le code source bash , devrait être quelque part dans le code d’analyse, mais je n’ai pas pu le trouver immédiatement.

117
schnaader