¿Por qué no sale el comando de abajo? En lugar de salir, el ciclo se ejecuta indefinidamente.
Mientras descubrí este comportamiento usando una configuración más compleja, la forma más simple del comando se reduce a lo siguiente.
No sale:
while /usr/bin/true ; do echo "ok" | cat ; done | exit 1
No hay errores tipográficos arriba. Cada '|' Es una pipa. La 'salida 1' representa otro proceso que se ejecutó y salió.
Espero que la "salida 1" provoque un SIGPIPE en el bucle while (escriba en una tubería sin lector) y que se rompa el bucle. Pero, el ciclo continúa corriendo.
¿Por qué no se detiene el comando?