2 SC2179
Joachim Ansorg edited this page 2021-11-12 19:44:46 +01:00

Use array+=("item") to append items to an array.

Problematic code:

var=(one two)
var+=three

Correct code:

var=(one two)
var+=( three )

Rationale:

It looks like you are trying to append a string to an array with var+=string. This instead appends to the first element of the array (equivalent to var[0]+=three).

In the problematic code, the array will therefore contain onethree two.

Instead, append an array to the array with var+=( elements ). This will append the new items to the array.

In the correct code, it will contain one two three as expected.

Exceptions:

If ShellCheck mistakenly thinks the variable is an array when it's not (e.g. because the same name was used in a different context), you can ignore this error.