Created SC2053 (markdown)

koalaman
2016-01-11 11:56:37 -08:00
parent a1deac9de2
commit 048b94f579

24
SC2053.md Normal file

@@ -0,0 +1,24 @@
## Quote the rhs of = in [[ ]] to prevent glob matching.
### Problematic code:
```sh
[[ $a = $b ]]
```
### Correct code:
```sh
[[ $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.