我有一个程序,它从 stdin 读取并写入 stdout。在我的示例中,它是cat
。我想要三个脚本来执行类似以下操作:
start.sh cat
将创建一个后台进程以及其他两个脚本所需的任何机制。write.sh <pid> "hello"
将会写入hello
先前创建的进程的标准输入,而不关闭它。read.sh <pid>
将读取该过程的标准输出,仅读取自上次读取以来写入的部分,在本例中为hello
,然后打印它并退出,而不等待更多输出。
我知道如果我创建一个 fifo 文件,我就可以得到 (2)。而通过将输出定向到文件并旋转它,我就可以得到 (3)。这是一个正常的解决方案吗?感觉有点临时。我有什么替代方案?