1
0
mirror of https://github.com/koalaman/shellcheck.git synced 2025-01-03 09:47:32 -08:00

Created SC2323 (markdown)

Vidar Holen 2022-07-24 14:54:35 -07:00
parent a6d76b8fad
commit 26b6a5d334

32
SC2323.md Normal file

@ -0,0 +1,32 @@
## `a[(x)]` is the same as `a[x]`. Prefer not wrapping in additional parentheses.
Similarly `$(( (x) ))` is the same as `$(( x ))`, `(( (x) ))` is the same as `(( x ))`.
### Problematic code:
```sh
array[(x+1)]=val
echo $(( (x+1) ))
```
### Correct code:
```sh
array[x+1]=val
echo $((x+1))
```
### Rationale:
ShellCheck found an entire arithmetic expression wrapped in parentheses. This does not serve a purpose since the expression is already clearly delimited by the construct it's in, such as `array[..]=` or `$((..))` in the example.
Note: ShellCheck does *not* warn about redundant parentheses in subexpressions, such as `(a*b)+c`. Feel free to use parentheses to clarify the order of operations any way you'd like. ShellCheck only emits this suggestion when the *entire* expression is wrapped *twice*.
### Exceptions:
If you prefer having an extra layer of parentheses for stylistic reasons, you can [[ignore]] this message.
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!