SC1138
Joachim Ansorg edited this page Oct 31, 2022
·
2 revisions
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
Related resources:
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!