当我比较两个单词等于“=”的字符串时?
当我比较两个等于“==”的字符串时?
例如:
[[ $STR = $STR1 ]]
OR
[[ $STR == $STR1 ]]
或许他们两个都做同样的事情?
答案 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。