SC1142 – ShellCheck Wiki

See this page on GitHub

Sitemap


Use done < <(cmd) to redirect from process substitution (currently missing one <).

Problematic code:

sum=0
while IFS="" read -r n
do
  (( sum += n ))
done <(file) 

Correct code:

sum=0
while IFS="" read -r n
do
  (( sum += n ))
done < <(file) 

Rationale:

ShellCheck found a done keyword followed by a process substitution, e.g. done <(cmd).

The intention was most likely to redirect from this process substitution, in which case you will need one extra <: done < <(cmd).

This is because <(cmd) expands to a filename (e.g. /dev/fd/63), and you need a < to redirect from filenames.

Exceptions:

None


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