< <(cmd)
, not << (cmd)
.while read -r line
do
echo "You said: $line"
done <<(cmd)
while read -r line
do
echo "You said: $line"
done < <(cmd)
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.
None
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.