SC1086 – ShellCheck Wiki

See this page on GitHub

Sitemap


Don't use $ on the iterator name in for loops.

Problematic code:

for $var in *
do
  echo "$var"
done

Correct code:

for var in *
do
  echo "$var"
done

Rationale:

The variable is named var, and can be expanded to its value with $var.

The for loop expects the variable's name, not its value (and the name can not be specified indirectly).

Exceptions

None.


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.