I guess I'm missing some understanding on the use cases of a process substitution. My intuition was that a process substitution, of the form
<(COMMANDS) would execute
COMMANDS and then feed the result of the program into whatever command it's a part of, so
command1 <(command2) would evaluate
command2 and pass the result as the first argument into
I thought the following would've worked:
$ for i in <(cat list.txt); do echo $i; done
list.txt is a file containing a list of words (separated by newlines). When I run this, it simply outputs
/dev/fd/63, which I can only assume is like a temporary pathname to the output of the subshell created in the process substitution?
I thought the above would've worked, because it works fine when I write
$ for i in `cat list.txt`; do echo $i; done
I've never seen this
` notation before, what does it mean exactly? And what understanding am I lacking about process substitutions?