2012-07-07 8 views
5

¿Es posible crear un ciclo utilizando Linux pipes? P.ej.Linux piping & loop

cmd1 | cmd2 | cmd3 | Atrás a la entrada estándar cmd1 '

En otras palabras, me gustaría stdout en cmd3 a conectar de nuevo a stdin de cmd1.

+0

Tenga en cuenta que este tipo de bucles pueden causar bloqueos. Si un comando en el ciclo deja de leer durante demasiado tiempo mientras está escribiendo, eventualmente todas las tuberías se llenan y bloquean. Incluso el comando lento original no puede escribir más. – jilles

+0

Utilizaré esto como un "anillo de transmisión de mensajes" (como reemplazo de un sistema basado en 0MQ): no espero que ocurra este tipo de interbloqueo. – jldupont

Respuesta

4

Se puede usar un tubo/FIFO llamado:

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