比较bash [[]]表单中的字符串时,=和==是否不同?

时间:2015-05-12 18:21:24

标签: bash shell

当我比较两个单词等于“=”的字符串时?

当我比较两个等于“==”的字符串时?

例如:

 [[  $STR = $STR1 ]]

OR

 [[  $STR == $STR1 ]]

或许他们两个都做同样的事情?

2 个答案:

答案 0 :(得分:0)

你是对的,两种方式完全相同相同的东西,执行时没有区别。

在您的情况下,请注意在变量名称中添加引号,如果其中一个为null,则bash可能会抛出错误。添加双引号会通过将变量设置为空字符串“”来传递此错误。

[[ "$STR1" = "$STR2" ]]

编辑:(感谢下面的评论)

首选使用此语法[ "$STR1" == "$STR2" ]以方便测试和shell。使用双打引号更好,并使您的条件可用于"*.txt"的正则表达式,但甚至不需要。

答案 1 :(得分:0)

[[ $a == z* ]]   # True if $a starts with an "z" (pattern matching).
[[ $a == "z*" ]] # True if $a is equal to z* (literal matching).

[ $a == z* ]     # File globbing and word splitting take place.
[ "$a" == "z*" ] # True if $a is equal to z* (literal matching).

关于字符串比较的所有内容,您都可以找到here