Sembra che questi due operatori siano praticamente uguali: c'è una differenza? Quando dovrei usare =
e quando ==
?Qual è la differenza tra l'operatore "=" e "==" in Bash?
risposta
È necessario utilizzare ==
a confronti numerici in ((...))
:
$ 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 ")
è possibile utilizzare sia per i confronti tra stringhe nelle [[ ... ]]
o [ ... ]
o 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
"I confronti di stringhe?", tu dici?
$ 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
C'è una sottile differenza rispetto a POSIX. Estratto dal Bash reference:
string1 == string2
Vero se le stringhe sono uguali.=
può essere utilizzato al posto di==
per la stretta conformità POSIX.
Nessuna differenza in bash? Solo un problema di portabilità? –
@ T.E.D .: No, vedere la mia risposta. –
- 1. Qual è la differenza tra ">" e "&>" in bash?
- 2. Qual è la differenza tra `$ *` an `$ @` in Bash
- 3. Qual è la differenza tra = e: =
- 4. Qual è la differenza tra `##` e `hashCode`?
- 5. Qual è la differenza tra dict() e {}?
- 6. qual è la differenza tra:.! e: r !?
- 7. Qual è la differenza tra Verilog! e ~?
- 8. Qual è la differenza tra ("") e (null)
- 9. Qual è la differenza tra? : e ||
- 10. qual è la differenza tra [[], []] e [[]] * 2
- 11. Qual è la differenza tra $ e $$?
- 12. Qual è la differenza tra " " e ""?
- 13. Qual è la differenza tra {0} e ""?
- 14. Qual è la differenza tra {0} e +?
- 15. Qual è la differenza tra .ToString() e + ""
- 16. Differenza tra shell Bash e terminale Bash?
- 17. Qual è la differenza tra $ VARIABLE e $ {VARIABLE}
- 18. Differenza tra "while" e "until" in Bash
- 19. Qual è la differenza tra PS1 e PROMPT_COMMAND
- 20. Qual è la differenza tra "in fp" e "in fp.readlines()"?
- 21. Qual è la differenza tra parentesi quadre singole e doppie in Bash?
- 22. Qual è la differenza tra "else if" e "elif" in bash?
- 23. Differenza tra bash pid e $$
- 24. Qual è la differenza tra Git Bash e GitHub per la shell di Windows?
- 25. Qual è la differenza tra spark-submit e pyspark?
- 26. Qual è la differenza tra Metodi e Attributi in Ruby?
- 27. qual è la differenza tra @ id/e @ + id/in android?
- 28. Qual è la differenza tra 'e "in? JavaScript
- 29. Qual è la differenza tra booleano e booleano in Java?
- 30. Qual è la differenza tra target e currenttarget in flex?
Non dovresti usare '==' con '[' o 'test', però. '==' non fa parte delle specifiche POSIX e non funzionerà con tutte le shell ('dash', in particolare, non lo riconosce). – chepner
@chepner: È vero, ma la domanda riguarda specificamente Bash. –