在两个程序之间交换标准输出和标准输入

Exchange stdout and stdin between two programs

我想为特定命令制作自动化程序,所以我需要让它们在执行过程中交换标准输出和标准输入。

让我解释一下,如果有一个命令同时执行两个程序,

# cmd1 (pipe or redirection something) cmd2

cmd1 将标准输出作为标准输入发送到 cmd2,然后 cmd2 将标准输出作为标准输入发送到 cmd1

用户收到的输出应该是cmd1的输出。我怎样才能做到这一点?

我认为你可以为此使用 FIFO 文件。

https://www.howtoforge.com/linux-mkfifo-command/

FIFO 文件允许您命名管道。您可以创建 2 个命名管道,一个用于 cmd1|cmd2,另一个用于 cmd2 | cmd1.