v='*.z' | |
[[ a.z = *.z ]]; echo 1:YES:$? | |
[[ a.z = "*".z ]]; echo 2:no:$? | |
[[ a.z == $v ]]; echo 3:YES:$? | |
# 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 \* |