Add another required case for using $ in an arithmetic expression, one that too many people tend to forget about.

Glenn Jackman
2019-07-26 13:25:58 -04:00
parent 9287ec9bc7
commit 434a724627

@@ -25,3 +25,15 @@ $ echo $((a * 5)) # evaluates as (1+1)*5
```
The `$` is unavoidable for special variables like `$1` vs `1`, `$#` vs `#`. It's also required when adding modifiers to parameters expansions, like `${#var}` or `${var%-}`. ShellCheck does not warn about these cases.
The `$` is also required (and not warned about) when you need to specify the *base* for a variable value:
```sh
$ a=09
$ echo $((a + 1)) # leading zero forces octal interpretation
bash: 09: value too great for base (error token is "09")
$ echo $((10#a + 1))
bash: 10#a: value too great for base (error token is "10#a")
$ echo $((10#$a + 1))
10
```