替代|(管道)运算符

我在寻找替代品 bash shell中的operator,用于将命令输出重定向为下一个命令的输入。 还有其他选择吗?

就像是 :

 command1 | command2 | command3 

替代:

 command1 X command2 X command3 

X将用于代替| 。 是否可以避免使用| 并用它的实际操作员替换它?

相当于command1 | command2 command1 | command2command2 < <(command1)

这也可以扩展到三个(或更多)命令。

command3 < <(command2 < <(command1))

 $ lspci | grep 'Network' 02:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01) $ grep 'Network' <(lspci) 02:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01) $ lspci | grep 'Network' | grep -o 'controller' controller $ grep -o 'controller' < <(grep 'Network' < <(lspci)) controller 

然而,正如Oli所建议的那样,虽然这可能产生相同的输出,但它在技术上与管道不同。

<(..)将内部命令输出的STDOUT转换为文件处理程序(命令,在您的示例中为grep)打开。 管道时,读取命令直接从STDIN读取(正在使用管道命令的STDOUT填充)。 微妙的差异,但对于只知道如何读取STDIN的命令可能很重要。