SC2276
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
This is interpreted as a command name containing =. Bad assignment or comparison?
Problematic code:
"$var"=42
if "$var"=42
then
true
fiCorrect code:
var=42
if [ "$var" = 42 ]
then
true
fiRationale:
ShellCheck found a command name containing an unquoted equals sign =. This was likely intended as either a comparison or an assignment.
To compare two values, use e.g. [ "$var" = "42" ]
To assign a value, use e.g. var="42"
Exceptions:
None, though you can quote the = to make ShellCheck ignore it: "$var=42".
Related resources:
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!