Kev*_*ler 3 bash process-substitution
tldp列出了两种用于进程替换的语法。
>(command_list)
和<(command_list)
如果有的话,有什么区别?
是的,有显着差异。请参阅http://www.gnu.org/software/bash/manual/bashref.html#Process-Substitution
在支持命名管道 (FIFO) 或命名打开文件的 /dev/fd 方法的系统上支持进程替换。它采用以下形式
<(列表)
或者
>(列表)
进程列表运行时其输入或输出连接到 FIFO 或 /dev/fd 中的某个文件。该文件的名称作为扩展的结果作为参数传递给当前命令。如果使用 >( list ) 形式,写入文件将为list提供输入。如果使用 <( list ) 形式,则应读取作为参数传递的文件以获得list的输出。请注意,< 或 > 和左括号之间不能出现空格,否则该构造将被解释为重定向。
示例:comm
需要对输入文件进行排序:
comm <(sort file1) <(sort file2)
Run Code Online (Sandbox Code Playgroud)
的使用>(cmd)
频率较低。我通常只使用它tee
来将一些输出发送到各种管道
seq 10 | tee >(rev > out1) >(tac > out2) >(shuf > out3)
Run Code Online (Sandbox Code Playgroud)