Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux管道及;环_Linux_Pipe_Piping - Fatal编程技术网

Linux管道及;环

Linux管道及;环,linux,pipe,piping,Linux,Pipe,Piping,是否可以使用Linux管道创建循环?例如 cmd1 | cmd2 | cmd3 |“返回标准输入cmd1” 换句话说,我希望cmd3的stdout连接回cmd1的stdin,您可以使用命名管道/FIFO: mkfifo cmd3-to-cmd1 cmd1 < cmd3-to-cmd1 | cmd2 | cmd3 >> cmd3-to-cmd1 mkfifo cmd3-to-cmd1 cmd1>cmd3-to-cmd1 请注意,此类循环可能会导致死锁。如果循环中的某个命令停止读

是否可以使用Linux管道创建循环?例如

cmd1 | cmd2 | cmd3 |“返回标准输入cmd1”


换句话说,我希望
cmd3的
stdout
连接回
cmd1的
stdin
您可以使用命名管道/FIFO:

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

请注意,此类循环可能会导致死锁。如果循环中的某个命令停止读取太长时间而仍在写入,则最终所有管道都会变满并阻塞。即使是原来的slow命令也不能再写了。我将使用它作为“消息传递环”(替代基于0MQ的系统):我不希望出现这种死锁。