SC2323 – ShellCheck Wiki

See this page on GitHub

Sitemap


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:

array[(x+1)]=val
echo $(( (x+1) ))

Correct code:

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.


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.