Il semble que ces deux opérateurs sont à peu près les mêmes - y a-t-il une différence? Quand devrais-je utiliser =
et quand ==
?Quelle est la différence entre l'opérateur "=" et "==" dans Bash?
Répondre
Vous devez utiliser ==
dans les comparaisons numériques dans ((...))
:
$ if ((3 == 3)); then echo "yes"; fi
yes
$ if ((3 = 3)); then echo "yes"; fi
bash: ((: 3 = 3 : attempted assignment to non-variable (error token is "= 3 ")
Vous pouvez utiliser des comparaisons de chaînes dans [[ ... ]]
ou [ ... ]
ou test
:
$ if [[ 3 == 3 ]]; then echo "yes"; fi
yes
$ if [[ 3 = 3 ]]; then echo "yes"; fi
yes
$ if [ 3 == 3 ]; then echo "yes"; fi
yes
$ if [ 3 = 3 ]; then echo "yes"; fi
yes
$ if test 3 == 3; then echo "yes"; fi
yes
$ if test 3 = 3; then echo "yes"; fi
yes
"Les comparaisons de chaînes?", vous dites?
$ if [[ 10 < 2 ]]; then echo "yes"; fi # string comparison
yes
$ if ((10 < 2)); then echo "yes"; else echo "no"; fi # numeric comparison
no
$ if [[ 10 -lt 2 ]]; then echo "yes"; else echo "no"; fi # numeric comparison
no
Il existe une différence subtile en ce qui concerne POSIX. Extrait du Bash reference:
string1 == string2
Vrai si les chaînes sont égales.=
peut être utilisé à la place de==
pour une conformité POSIX stricte.
Aucune différence dans bash cependant? Juste un problème de portabilité? –
@ T.E.D .: Non, voir ma réponse. –
- 1. arrays bash - quelle est la différence entre $ {# array_name [*]} et $ {# array_name [@]}
- 2. quelle est la différence entre:.! et: r !?
- 3. Quelle est la différence entre = et: =
- 4. Quelle est la différence entre dict() et {}?
- 5. Quelle est la différence entre "$^N" et "$ +"?
- 6. Quelle est la différence entre ~ et! opérateur?
- 7. Quelle est la différence entre PS1 et PROMPT_COMMAND
- 8. Quelle est la différence entre% Q et% {} dans ruby?
- 9. Quelle est la différence entre // et /// dans Visual Studio?
- 10. Quelle est la différence entre undefined et window.undefined dans JavaScript?
- 11. Quelle est la différence entre - et NOT opérateur dans Lucene?
- 12. Quelle est la différence entre target et currenttarget dans flex?
- 13. Quelle est la différence entre -I et -L dans makefile?
- 14. Quelle est la différence entre memset et memcpy dans C
- 15. Quelle est la différence entre latin1_general_ci et utf8_bin dans MYSQL
- 16. Quelle est la différence entre HttpContext.Current.User et Thread.CurrentPrincipal dans asp.net?
- 17. Quelle est la différence entre send() et sendAndLoad() dans flash?
- 18. Quelle est la différence entre Toggle et slideToggle dans jQuery?
- 19. Quelle est la différence entre * .tpl et * .html dans smarty?
- 20. Quelle est la différence entre $ {...} et! {...} dans Spark View Engine?
- 21. Quelle est la différence entre Int et Integer dans Scala?
- 22. Quelle est la différence entre bcc32 et bcc32ide dans Borland?
- 23. Quelle est la différence entre utf8_general_ci et utf8_unicode_ci dans MySql?
- 24. Quelle est la différence entre SetFocus() et Focus() dans ASP.NET?
- 25. Quelle est la différence entre class et id dans jQuery?
- 26. Quelle est la différence entre IDelegateEvent et IEvent dans F #?
- 27. Quelle est la différence entre: = et = dans MySQL?
- 28. Quelle est la différence entre `=` et `<-` dans R?
- 29. Quelle est la différence entre Partiel et Slot dans Symfony?
- 30. Quelle est la différence entre filter et filter_by dans SQLAlchemy?
Vous ne devriez pas utiliser '==' avec '[' ou 'test', cependant. '==' ne fait pas partie de la spécification POSIX et ne fonctionnera pas avec tous les shells ('dash', en particulier, ne le reconnaît pas). – chepner
@chepner: C'est vrai, mais la question concerne spécifiquement Bash. –