Skip to content
Joachim Ansorg edited this page Nov 12, 2021 · 2 revisions

Use [ ] to compare values, or remove spaces around = to assign (or quote '=' if literal).

Problematic code:

# Assignment
var = value

# Comparison
if $var = value
then
  echo "Match"
fi

Correct code:

# Assignment
var=value

# Comparison
if [ "$var" = value ]
then
  echo "Match"
fi

Rationale:

ShellCheck found an unquoted = after a word.

If this was supposed to be a comparison, use square brackets: [ "$var" = value ]

If this was supposed to be an assignment, remove spaces around =: var=value

Exceptions:

If the = was meant literally, quote it:

grep '=true' file.cfg

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