Pattern: Use of set
to assign variable
Issue: -
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.
Example of incorrect code:
set var=42
set var 42
Example of correct code:
var=42
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"
.