有人可以在bash脚本中解释-eq和==之间的区别吗?
以下之间有什么区别吗?
[$a -eq $b]
和[$a == $b]
简单来说,只有当变量包含数字时才使用==?
这是相反的方式:==是用于字符串比较,-eq是数字的. -eq与-lt,-le,-gt,-ge和-ne在同一个家族,如果这有助于您记住哪个是哪个.
$[ a == a ]; echo $? 0 $[ a -eq a ]; echo $? -bash: [: a: integer expression expected 2
==是bash-ism. POSIX形式为=.如果对非bash shell的可移植性很重要,请使用=.