SC1138 – ShellCheck Wiki

See this page on GitHub

Sitemap


Shells are space sensitive. Use < <(cmd), not << (cmd).

Problematic code:

while read -r line
do
  echo "You said: $line"
done <<(cmd)

Correct code:

while read -r line
do
  echo "You said: $line"
done < <(cmd)

Rationale:

When redirecting < from a process substitution <(cmd), make sure there is a space between the two < characters as shown in the example.

With a space cmd1 < <(cmd2), is correctly interpreted as "run cmd1, reading stdin from cmd2, without forking for a pipeline".

Without a space, << is incorrectly considered a here document, and (cmd2) is an invalid delimiter token.

Exceptions:

None


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