Clone
3
SC2190
Simon Brandt edited this page 2025-06-25 15:58:40 +02:00

Elements in associative arrays need index, e.g. array=( [index]=value ) .

Problematic code:

declare -A foo
foo=( myvalue )

Correct code:

declare -A foo
foo=( [key]=myvalue )

Rationale:

You appear to be initializing or appending an array element to an associative array without giving it an index. In an indexed array, elements will be auto-indexed by incremented characters. In associative arrays, the index must be given explicitly.

This could happen because of invalid spaces or otherwise malformed index assignment, such as array=( [key] = value ). This should instead be array=( [key]=value ).

Exceptions:

ShellCheck may be confused when a variable name is reused in different contexts. If ShellCheck mistakenly believes the array is associative, please ignore this error.