Skip to content
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
fi

Correct code:

var=42
if [ "$var" = 42 ]
then
  true
fi

Rationale:

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!

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally