SC2121 – ShellCheck Wiki

See this page on GitHub


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

Problematic code:

set var=42
set var 42

Correct code:



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.


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".

ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.