在Bash中,“<(...)”操作符的名称是什么?

5

我熟悉在bash中创建“临时文件”以进行命令输入,例如:

cat file_1 <(echo hello) file_2

我希望能够了解更多关于这个主题的信息,但是我不知道 <( ) 运算符的名称。我猜测它是一种IO重定向。

这个符号/运算符有一个专门的名称吗?

2个回答

13

这被称为进程替换

进程替换是一种重定向形式,其中进程(一些命令序列)的输入或输出出现为一个临时文件。

还可以参考Bash 参考手册 → 3.5.6 进程替换

进程替换允许使用文件名引用进程的输入或输出。 它采用以下形式:

<(list)
或者
>(list)
进程列表以异步方式运行,其输入或输出显示为文件名。该文件名作为扩展的结果作为当前命令的参数传递。如果使用“>(list)”形式,则向文件写入将为列表提供输入。如果使用“<(list)”形式,则应读取传递为参数的文件以获取列表的输出。请注意,左尖括号“<”或右尖括号“>”与左括号之间不能出现空格,否则构造将被解释为重定向。进程替换受支持的系统支持命名管道(FIFO)或/dev/fd方法命名打开的文件。当可用时,进程替换与参数和变量扩展、命令替换和算术扩展同时执行。

1
也被称为“匿名FIFO”。

1
这并没有提供问题的答案。如果要批评或请求作者澄清,请在他们的帖子下留言。-【来自审查】 - Toby Speight
3
它实际上回答了这个问题。 - Nahuel Ianni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接