mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Updated Sc2004 (markdown)
10
Sc2004.md
10
Sc2004.md
@@ -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.
|
Reference in New Issue
Block a user