处理替换语法。前/右括号与后/左括号

处理替换语法。前/右括号与后/左括号

tldp列出了进程替换的两种语法。 >(command_list)<(command_list)

如果有的话,有什么区别?

答案1

是的,有显着差异。看http://www.gnu.org/software/bash/manual/bashref.html#Process-Substitution

支持命名管道 (FIFO) 或 /dev/fd 命名打开文件方法的系统支持进程替换。它采取以下形式

<(列表

或者

>(列表

过程列表运行时其输入或输出连接到 FIFO 或 /dev/fd 中的某个文件。该文件的名称作为扩展结果作为参数传递给当前命令。如果 >(列表) 形式被使用,写入文件将为列表。如果 <(列表) 形式时,应读取作为参数传递的文件以获得以下输出列表请注意,< 或 > 与左括号之间不能出现空格,否则该构造将被解释为重定向。

示例:comm要求对输入文件进行排序:

comm <(sort file1) <(sort file2)

的使用>(cmd)频率较低。我通常只使用它来tee将一些输出发送到各种管道

seq 10 | tee >(rev > out1) >(tac > out2) >(shuf > out3)

相关内容