Linux 管道和循环

5

使用Linux管道创建循环是可能的吗?例如:

cmd1 | cmd2 | cmd3 | '回到stdin的cmd1'

换句话说,我希望将cmd3stdout连接回cmd1stdin


请注意,这样的循环可能会导致死锁。如果循环中的某个命令在仍在写入时停止读取时间过长,最终所有管道都会变满并阻塞。即使原始的缓慢命令也无法再写入。 - jilles
我将使用这个作为“消息传递环”(替代基于0MQ的系统):我不希望发生这种死锁。 - jldupont
1个回答

4

您可以使用命名管道/FIFO:

mkfifo cmd3-to-cmd1
cmd1 < cmd3-to-cmd1 | cmd2 | cmd3 >> cmd3-to-cmd1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接