4 SC2121
Joachim Ansorg edited this page 2021-11-12 19:36:22 +01:00

To assign a variable, use just var=value, not set ...

Problematic code:

set var=42
set var 42

Correct code:

var=42

Rationale:

set is not used to set or assign variables in Bourne shells. It's used to set shell options and positional parameters.

To assign variables, use var=value with no set or other qualifiers.

Exceptions

If you actually do want to set positional parameters, simply quoting them or using -- will make shellcheck stop warning, e.g. set -- var1 var2 or set "foo=bar".