mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Created SC2323 (markdown)
32
SC2323.md
Normal file
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!
|
Reference in New Issue
Block a user