v='*.z' # Buggy: # the problem is that expansion rules of LHS and RHS of ~= # should not be the same: in RHS, "$v" and "*" should escape metas # (currently "$v" does not), # but in LHS, they should _not_ do that # (currently "*" does). Thus these cases fail: [[ a.z == "$v" ]]; echo 4:no:$? # BUG: "$v" expands to *.z [[ "*".z == ?.z ]]; echo 5:YES:$? # BUG: "*" expands to \*