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:
|
### 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