Anyone know why this happens? Is this a bug of bash?
x=\'mnt:[4026532411]\'
[[ $x == $x ]] && echo OK
I am expecting result OK>
The unquoted right-hand side of ==
and !=
is treated as a pattern, not a literal string. mnt:[4026532411]
will match mnt:
followed by exactly one of 0, 1, 2, 3, 4, 5, or 6, since the patterns mnt:[4026532411]
and mnt:[0123456]
are equivalent. To match the lieral string, you need to quote the expansion.
x='mnt:[4026532411]'
[[ $x == "$x" ]] && echo OK