多个 stdout 对应一个 stdin

多个 stdout 对应一个 stdin

我使用的是 Windows,尽管我也可以使用的是 Linux,因此欢迎提供针对这两种情况的解决方案。

我有一个程序,本质上是一个有 4 名玩家的游戏,每个玩家都会接受指令。基本上,这个想法是让 4 个小组为这个游戏创建一个 AI。我需要将这 4 个 AI 程序的标准输出路由到我的比赛程序的标准输入。我该怎么做?

答案1

命名管道接受任何人的输出(如果权限允许)

#!/bin/bash

mkfifo -m 666 /tmp/myfifo.pipe

( echo 'Proc1' 1> /tmp/myfifo.pipe ) &
PID1=$!
( echo 'Proc2' 1> /tmp/myfifo.pipe ) &
PID2=$!
( echo 'Proc3' 1> /tmp/myfifo.pipe ) &
PID3=$!

 cat </tmp/myfifo.pipe > result.txt

wait $PID1 $PID2 $PID3

rm -f /tmp/myfifo.pipe

相关内容