Updated Sc2004 (markdown)

koalaman
2015-09-17 13:09:50 -07:00
parent bb85e9e613
commit 5ab13325fd

@@ -10,6 +10,12 @@
### Rationale:
The `$` on regular variables in arithmetic contexts has no purpose, and is just noise.
The `$` on regular variables in arithmetic contexts is unnecessary, and can even lead to subtle bugs. This is because the contents of `$((..))` is first expanded into a string, and then evaluated as an expression:
The `$` does matter for special variables like `$1` vs `1`, `$#` vs `#`. ShellCheck does not produce this style suggestion for these cases.
$ a='1+1'
$ echo $(($a * 5)) # becomes 1+1*5
6
$ echo $((a * 5)) # evaluates as (1+1)*5
10
The `$` is unavoidable for special variables like `$1` vs `1`, `$#` vs `#`. ShellCheck does not warn about these cases.