来自两个管道的非阻塞轮询?

来自两个管道的非阻塞轮询?

这就是我想做的..

mkfifo infrequentlog frequentlog
sort -m infrequentlog frequentlog > mylog
funcA > infrequentlog 
funcB > frequentlog 

这样,当监视尾部时,我可以看到日期是从两个日志中排序的。

tail -f mylog

问题是这个东西在 funcA 产生一些东西之前不会打印。我想要的是即使 funcA 暂时没有产生任何东西,我仍然得到一些关于 funcB 的东西

答案1

创建第三个管道并将前两个管道连续复制到其中。然后阅读第三条:

while cp infrequentlog mainlog; do :; done &
while cp frequentlog mainlog; do :; done &

sort mainlog > mylog

您还需要重复排序才能获取所有消息。

相关内容