看来,这两个运营商几乎是相同的 - 是否有区别?我应该何时使用=
以及==
?Bash中运算符“=”和“==”有什么区别?
54
A
回答
71
您必须((...))
在数字比较使用==
:
$ 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 ")
您可以在[[ ... ]]
或[ ... ]
或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
“字符串比较?”,你说?
$ 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
29
关于POSIX有一个细微的差别。从Bash reference摘录:
string1 == string2
True如果字符串相等。可以使用=
来代替==
以符合严格的POSIX标准。
+0
bash虽然没有区别吗?只是一个可移植性问题? – 2010-04-08 14:11:26
+0
@ T.E.D .:不,请参阅我的答案。 – 2010-04-08 16:19:13
相关问题
- 1. SQL中的IN运算符和=运算符有什么区别?
- 2. 有什么区别`和$(Bash中有什么区别?
- 3. PHP中的“和”和“&&”运算符有什么区别吗?
- 4. 运算符>>和运算符>>>在java中有什么区别?
- 5. Lucene中 - 和NOT运算符有什么区别?
- 6. c编程中的*和&运算符有什么区别?
- 7. C中的投射运算符和后缀有什么区别?
- 8. Julia中的“==”和“===”比较运算符有什么区别?
- 9. obj c函数中(+)和( - )运算符有什么区别
- 10. 在php中!=和<>运算符有什么区别?
- 11. 运算符>>>在Java和JavaScript中有什么区别?
- 12. python中的/和//运算符有什么区别?
- 13. 运算符重载kotlin中的plus和plusAssign有什么区别?
- 14. 猫鼬中的.in()和all。()运算符有什么区别?
- 15. 在Solr中,NOT和 - (minus)运算符有什么区别?
- 16. 点(。)运算符和 - >在C++中有什么区别?
- 17. SQL中NOT和!=运算符有什么区别?
- 18. Malloc和新运算符分配内存有什么区别?
- 19. 使用Object.create()和使用赋值运算符有什么区别?
- 20. +运算符和+函数有什么区别是vhdl?
- 21. 新运算符和Class.newInstance()之间有什么区别?
- 22. 匹配方法和=〜运算符有什么区别?
- 23. InheritsFrom和is运算符有什么区别?
- 24. 有什么区别?和*在Bash?
- 25. 算术运算符^和。^之间的区别是什么?
- 26. 快速可选类型中的`!`&`?`运算符有什么区别?
- 27. 在php中两个不等于运算符有什么区别?
- 28. 运行bash命令时nohup和有什么区别?
- 29. 算法和方法有什么区别
- 30. C++中+ =和= +运算符的区别?
尽管如此,你不应该在''''或'test'中使用'=='。 '=='不是POSIX规范的一部分,并且不适用于所有shell('dash',特别是不能识别它)。 – chepner 2015-11-10 19:39:38
@chepner:这是真的,但问题是关于Bash的具体问题。 – 2015-11-10 20:01:25