1
->[[ "abc~" == *~ ]]; echo $?; [[ *~ == "abc~" ]]; echo $?
0
1

在上面的片段中,为什么比较顺序似乎会影响真值?

4

1 回答 1

2

模式匹配仅在==. 第二个示例按*~字面意思计算字符串。

这就是为什么在双括号中的表达式的右侧需要引用,而左侧不需要引用的原因。

[[ $a == "$b" ]] # Right

[[ "$a" == $b ]] # Wrong
于 2013-09-09T20:07:36.800 回答