【发布时间】:2016-05-22 16:42:39
【问题描述】:
我只是在学习 bash 脚本。这是我第一次必须将输出重定向到另一个程序,我不知道该怎么做。
我必须编写一个脚本来连接一个 GUI 程序和零个、一个或两个程序 - 我需要两个玩家,都可以是计算机或人类。 GUI 从两个程序(或人类,我的意思是从标准输入)获取输出。
假设有一个人和一个comp_player。人类使用标准输入发出命令,该命令必须重定向到运行 GUI 程序和运行 comp_player,两者都需要输入。然后,comp_player 的输出必须重定向到 GUI(如果有第二台计算机播放器,还需要将此输出重定向到第二台计算机播放器的输入)。回合结束。
我知道如何创建一个文件来读写和重定向输入或输出。例如:
echo "anything" >&3
exec 3<>sometextfile
read line <&3
echo $line
但我不知道如何重定向,例如,我刚刚读到的行到正在运行的程序,该程序需要输入并捕获其输出,我可以将其重定向到 GUI 和另一个程序。
我知道它不像上面的代码那么简单,我必须使用一种叫做命名管道的东西,但是我尝试阅读一些教程,但我未能编写工作脚本。
你能给我一个脚本片段的例子吗,比如说:
(gui程序和电脑播放器程序正在运行)
-从标准输入读取行
-“发送”该行到 gui 程序和 comp_player 的输入
-“读取”来自 comp_player 的输出并将其写入标准输出,并将其“发送”到 gui 输入
【问题讨论】:
标签: bash redirect io pipe fifo