Skip to content
Vidar Holen edited this page Dec 31, 2020 · 3 revisions

Don't use $/${} on the left side of assignments.

Problematic code:

$greeting="Hello World"
${greeting}="Hello World"

Correct code:

greeting="Hello World"

Alternatively, if the goal was to assign to a variable whose name is in another variable (indirection), use declare:

name=foo
declare "$name=hello world"
echo "$foo"

Or if you actually wanted to compare the value, use a test expression:

if [ "$greeting" = "hello world" ]
then
  echo "Programmer, I presume?"
fi

Rationale:

Unlike Perl or PHP, $ is not used on the left-hand side of = when assigning to a variable.

Exceptions

If you wanted to

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