Supongo que tengo programas P0
, P1
, ... P(n-1)
para unos n > 0
. ¿Cómo puedo redireccionar fácilmente la salida del programa Pi
al programa P(i+1 mod n)
para todos los i
(0 <= i < n
)?Cómo hacer un lazo de tubo en bash
Por ejemplo, digamos que tengo un programa square
, que lee repetidamente un número y que imprime el cuadrado de ese número, y un programa calc
, que a veces se imprime un número después de lo cual se espera que sea capaz de leer la plaza de eso ¿Cómo conecto estos programas de manera que siempre que calc
imprima un número, square
cuadrados, lo devuelva a calc
?
Editar: Probablemente debería aclarar lo que quiero decir con "fácilmente". La solución pipe/fifo nombrada es una que realmente funciona (y he utilizado en el pasado), pero en realidad requiere bastante trabajo para hacerlo correctamente si se compara con el uso de una tubería bash. (Necesitará obtener un nombre de archivo aún no existente, crear un conducto con ese nombre, ejecutar el "bucle de tubería", limpiar el conducto nombrado). Imagine que ya no puede escribir prog1 | prog2
y que siempre tendrá que usar conductos con nombre para conectar programas .
Estoy buscando algo que sea tan fácil como escribir un tubo "normal". Por ejemplo, algo como { prog1 | prog2 } >&0
sería genial.
¿Podría dar un ejemplo sobre Zsh? Estoy interesado en eso. –