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 command1.
I thought the following would've worked:
$ for i in <(cat list.txt); do echo $i; done where 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?