我想我缺少对流程替换用例的一些理解。我的直觉是,形式的进程替换<(COMMANDS)
将执行COMMANDS
,然后将程序的结果提供给它所属的任何命令,因此command1 <(command2)
将评估command2
并将结果作为第一个参数传递给command1
.
我认为以下方法会起作用:
$ for i in <(cat list.txt); do echo $i; done
其中list.txt
是包含单词列表(由换行符分隔)的文件。当我运行它时,它只是输出/dev/fd/63
,我只能假设它是在进程替换中创建的子 shell 输出的临时路径名?
我认为上面的方法会起作用,因为它在我写的时候工作得很好
$ for i in `cat list.txt`; do echo $i; done
我以前从未见过这种`
表示法,它到底是什么意思?我对流程替换缺乏什么理解?