+--------------------+ +------+ +----------+
| stdout |·······→| less |——————→| |
| somecommand | +------+ | terminal |
| stderr |——————————————————————→| |
+--------------------+ +----------+
Si somecommand
imprime texto solo con error estándar, cuando lo ejecuta somecommand | less
, somecommand
y less
ambos se muestran en el terminal. La salida del comando en su stderr no va less
, va directamente a la terminal, ya que no se redirige. Primero, la salida de los somecommand
pergaminos por menos se inicializa y muestra su línea de solicitud; luego, cuando somecommand
termina, menos avisos de que su entrada está completa (porque la tubería está cerrada). Es posible que desee experimentar un poco: ejecutar
{ sleep 1; somecommand; sleep 1; } | { sleep 0; less; }
y variaciones en los tiempos de espera para que la somecommand
producción produzca antes o después de que menos esté lista y para ver qué sucede cuando se cierra la tubería.
Gilles 'SO- deja de ser malvado'
fuente