Created SC1076 (markdown)

Vidar Holen
2022-10-19 20:48:37 -07:00
parent 45e7d232c6
commit 8a67f70466

26
SC1076.md Normal file

@@ -0,0 +1,26 @@
## Trying to do math? Use e.g. `[ $((i/2+7)) -ge 18 ]`.
### Problematic code:
```sh
[ i / 2 + 7 -ge 18 ]
```
### Correct code:
```sh
[ $((i / 2 + 7)) -ge 18 ]
```
### Rationale:
ShellCheck found a loose `+*/%` in a test statement. This usually happens when trying to do arithmetic in a condition, but without using the arithmetic expansion construct `$((expression))`.
In C, `if (a+b == c)` is perfectly fine, but in sh this must be written to first expand the arithmetic operation like `if [ $((a+b)) = c ]`.
### Exceptions:
None.
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!