SC2053
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
Quote the rhs of = in [[ ]] to prevent glob matching.
Problematic code:
[[ $a = $b ]]Correct code:
[[ $a = "$b" ]]Rationale:
When the right-hand side of =, == or != is unquoted in [[ .. ]], it will be treated like a glob.
This has some unexpected consequences like [[ $var = $var ]] being false (for var='[a]'), or [[ $foo = $bar ]] giving a different result from [[ $bar = $foo ]].
The most common intention is to compare one variable to another as strings, in which case the right-hand side must be quoted.
Exceptions:
If you explicitly want to match against a pattern, you can ignore this warning.