Es scheint, dass diese beiden Betreiber ziemlich gleich sind - gibt es einen Unterschied? Wann sollte ich =
und wann ==
verwenden?Was ist der Unterschied zwischen Operator "=" und "==" in Bash?
Antwort
Sie müssen ==
in numerischen Vergleichen in ((...))
verwenden:
$ 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
,:
$ 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 ")
Sie entweder für String-Vergleiche in [[ ... ]]
oder [ ... ]
oder test
verwenden du sagst?
$ 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
Es gibt einen feinen Unterschied in Bezug auf POSIX. Auszug aus dem Bash reference:
string1 == string2
Wahr, wenn die Strings gleich sind.=
kann anstelle von==
für die strikte Einhaltung von POSIX verwendet werden.
Kein Unterschied in bash obwohl? Nur ein Problem mit der Portabilität? –
@ T.E.D .: Nein, sehe meine Antwort. –
- 1. Was ist der Unterschied zwischen ">" und "&>" in bash?
- 2. Was ist der Unterschied zwischen string :: at und string :: operator []?
- 3. Was ist der Unterschied zwischen VB + + und Operator?
- 4. Was ist der Unterschied zwischen dem neuen Operator und Class.newInstance()?
- 5. Was ist der Unterschied zwischen `$ *` ein `$ @` in Bash
- 6. Was ist der Unterschied zwischen dem Operator "+" in ggplot2 und dem Operator "%>%" in magritr?
- 7. Unterschied zwischen $ {} und $() in Bash
- 8. Was ist der Unterschied zwischen `-Contains` und` -In` in PowerShell?
- 9. Was ist der Unterschied zwischen `==` und `ist`?
- 10. Was ist der Unterschied zwischen expliziter atomarer Ladung/Speicherung und normalem Operator = und Operator T?
- 11. Unterschied zwischen "neuer Operator" und "neuer Operator"?
- 12. Linux Bash. Was ist der Unterschied zwischen 2 Zeilen?
- 13. Was ist der Unterschied zwischen/* ... */und/** ... */
- 14. Was ist der Unterschied zwischen + = und = +?
- 15. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 16. Was ist der Unterschied zwischen:.! und: r !?
- 17. Was ist der Unterschied zwischen Verilog! und ~?
- 18. Der Unterschied zwischen bash und Python Rohre
- 19. Was ist der Unterschied zwischen Difftime und '-'?
- 20. Was ist der Unterschied zwischen $ und $$?
- 21. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 22. Was ist der Unterschied zwischen `&` und `ref`?
- 23. Was ist der Unterschied zwischen $ (...) und `...`
- 24. Was ist der Unterschied zwischen .Equals und ==
- 25. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 26. Was ist der Unterschied zwischen? und ? = Nil
- 27. Was ist der Unterschied zwischen PS1 und PROMPT_COMMAND ist
- 28. Was ist der Unterschied zwischen:
- 29. Was ist der Unterschied zwischen '&' und ',' in Java Generics?
- 30. Bash Script: Unterschied zwischen %% und //
Sie sollten '' '' jedoch nicht mit '[' oder 'test' verwenden. '==' ist nicht Teil der POSIX-Spezifikation und wird nicht mit allen Shells funktionieren (insbesondere "Bindestrich" erkennt es nicht). – chepner
@chepner: Das stimmt, aber die Frage bezieht sich speziell auf Bash. –