diff --git a/SC2121.md b/SC2121.md new file mode 100644 index 0000000..e4b8bcc --- /dev/null +++ b/SC2121.md @@ -0,0 +1,20 @@ +# To assign a variable, use just 'var=value', no '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. + +### Contraindications + +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"`. \ No newline at end of file