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

3

我希望制作一个特定命令的自动化程序,所以我需要在它们执行期间交换stdout和stdin。

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

# cmd1 (pipe or redirection something) cmd2
cmd1 将 stdout 作为 stdin 发送给 cmd2,然后 cmd2 将 stdout 作为 stdin 发送回 cmd1。用户接收到的输出应该是 cmd1 的输出。我该怎么做?

一个管道应该可以工作。你能展示一下cmd1和cmd2的代码,说明为什么它不能工作吗? - Alex Stiff
2
@AlexStiff 在Linux上,管道不是双向的(但在某些系统上如Solaris和BSD上是双向的)。我认为使用命名管道(例如这里的32票解决方案)会是一个更好、更可移植的解决方案。此外,楼主,我认为这将是一个更好的问题,适合在unix.stackexchange.com上提问。 - JNevill
@AlexStiff 我可以在 cmd2 上处理来自 cmd1 的所有 stdout,但我无法将 cmd2 的 stdout 发送到 cmd1。 - Kangjun Heo
@JNevill 我明白了,谢谢! - Kangjun Heo
这里是JNevill提到的答案 - chepner
@chepner 谢谢!我不知道你可以锚定到答案。这很方便。 - JNevill
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,