我希望制作一个特定命令的自动化程序,所以我需要在它们执行期间交换stdout和stdin。
让我解释一下,如果有一个命令同时执行两个程序,
# cmd1 (pipe or redirection something) cmd2
cmd1
将 stdout 作为 stdin 发送给 cmd2
,然后 cmd2
将 stdout 作为 stdin 发送回 cmd1
。用户接收到的输出应该是 cmd1
的输出。我该怎么做?
我希望制作一个特定命令的自动化程序,所以我需要在它们执行期间交换stdout和stdin。
让我解释一下,如果有一个命令同时执行两个程序,
# cmd1 (pipe or redirection something) cmd2
cmd1
将 stdout 作为 stdin 发送给 cmd2
,然后 cmd2
将 stdout 作为 stdin 发送回 cmd1
。用户接收到的输出应该是 cmd1
的输出。我该怎么做?
我认为你可以使用FIFO文件来实现这个。
https://www.howtoforge.com/linux-mkfifo-command/
FIFO文件允许您为管道命名。您可以创建2个命名管道,一个用于cmd1 | cmd2,另一个用于cmd2 | cmd1。