koalaman / shellcheck Public
SC2283
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"
fiCorrect code:
# Assignment
var=value
# Comparison
if [ "$var" = value ]
then
echo "Match"
fiRationale:
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!