【发布时间】:2018-04-16 15:09:48
【问题描述】:
我想为特定命令制作自动化程序,所以我需要让它们在执行过程中交换标准输出和标准输入。
让我解释一下,如果有一个命令同时执行两个程序,
# cmd1 (pipe or redirection something) cmd2
cmd1 将标准输出作为标准输入发送到cmd2,然后cmd2 将标准输出作为标准输入发送到cmd1。
用户收到的输出应该是cmd1 的输出。我怎样才能做到这一点?
【问题讨论】:
-
管道应该可以工作。你能显示来自 cmd1 和 cmd2 的代码,这不起作用吗?
-
@AlexStiff 在 Linux 上,管道不是双向的(但它们在某些系统上,例如 Solaris 和 BSD)。我认为使用named pipes like the 32-vote solution here 会是一个更好、更便携的解决方案。另外,OP,我相信这对 unix.stackexchange.com 来说是一个更好的问题。
-
@AlexStiff 我可以在 cmd2 上处理来自 cmd1 的所有标准输出,但我无法将标准输出从 cmd2 发送到 cmd1。
-
@JNevill 我明白了,谢谢!
-
这是 JNevill 提到的the answer。