有没有办法在 shell 中创建非阻塞/异步命名管道或类似的东西?这样程序就可以在其中放置行,这些行将保留在 ram 中,并且当某些程序可以从管道中读取某些行时,将未读取的内容留在 fifo 中?程序也很可能可以同时写入和读取该 fifo。起初我虽然也许这可以使用文件来完成,但在网上搜索了一下之后,似乎没有什么好处可以来自文件同时读取和写入的事实。命名管道几乎可以工作,只是有两个问题:首先,如果另一端没有人,它们会阻塞读/写,其次,即使我让写入阻塞并设置两个进程写入管道,而没有人在读,通过尝试为每个进程写一行,然后尝试head -n 1 <fifo>
我只得到了我需要的一行,但是两个写入过程都终止了,第二行丢失了。有什么建议么?
编辑:也许可以使用一些中间程序来帮助解决这个问题,充当作家和读者之间的调解人?