2 SC2321
Joachim Ansorg edited this page 2022-10-31 19:48:54 +01:00

Array indices are already arithmetic contexts. Prefer removing the $(( and )).

Problematic code:

values[$((i+1))]=1

Correct code:

values[i+1]=1

Rationale:

In indexed arrays (but not associative ones), the array index is already an arithmetic context. There is no point or value in wrapping it in an additional, explicit $((..)).

Exceptions:

If ShellCheck has failed to realize that your array is associative, or if you for stylistic reasons prefer the redundancy, you can ignore this message.

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!