Created SC2322 (markdown)

Vidar Holen
2022-07-24 14:38:53 -07:00
parent be09b55081
commit a6d76b8fad

24
SC2322.md Normal file

@@ -0,0 +1,24 @@
## In arithmetic contexts, ((x)) is the same as (x). Prefer only one layer of parentheses.
### Problematic code:
```sh
value=$(( ((offset + index)) * 512 ))
```
### Correct code:
```sh
value=$(( (offset + index) * 512 ))
```
### Rationale:
ShellCheck found doubly nested parentheses in an arithmetic expression. While the syntax for an arithmetic expansion is `$((..))`, this does not imply that parentheses in the expression should also be doubled. `(x)`, `((x))`, and `(((x)))` are all identical, so you might as well use only one layer of parentheses.
### Exceptions:
This is a stylistic suggestion. If you prefer keeping both parentheses, you can [[ignore]] this message.
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!