mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-01-03 09:47:32 -08:00
Created SC2323 (markdown)
parent
a6d76b8fad
commit
26b6a5d334
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!
|
Loading…
Reference in New Issue
Block a user