解决方案1:使用流程替代
最方便的方法是使用进程替换。在bash中,语法如下所示:
foo -o >(other_command)
(请注意,这是一种bashism。对于其他shell,也有类似的解决方案,但最重要的是,它不可移植。)
解决方案2:显式使用命名管道
您可以按以下步骤明确/手动执行上述操作:
使用
mkfifo
命令创建命名管道。mkfifo my_buf
使用该文件作为输入启动您的其他命令
other_command < my_buf
执行
foo
并将其写入输出my_buf
foo -o my_buf
解决方案3:使用 /dev/stdout
您还可以
/dev/stdout如下使用设备文件
foo -o /dev/stdout | other_command



