El annotate-output
script de Debian's le devscripts
permite hacer esto selectivamente:
$ annotate-output ls -ld /test
14:54:22 -: Started ls -ld /test
14:54:22 E: ls: cannot access /test: No such file or directory
14:54:22 -: Finished with exitcode 2
La segunda columna indica stdout y stderr con O
y E
respectivamente.
Hay algunas advertencias, la principal es como se señaló en las otras respuestas: no puede hacer esto después del hecho. Ni el shell ni el terminal saben cómo un programa arbitrario utiliza sus descriptores de archivo, aunque el shell es responsable de configurarlos inicialmente.
Este método utiliza quince, escribir en un quince puede comportarse de manera diferente que escribir en un tty, y escribir en dos quince diferentes es definitivamente diferente (problemas potenciales de sincronización / intercalación). Además, no es adecuado para uso interactivo, por ejemplo, annotate-output bash
no es un gran plan, pero es útil para muchos otros fines. Hay muchos, muchos ejemplos de scripts y funciones de shell en las respuestas a preguntas relacionadas sobre colorear stdin / stdout / stderr, el más robusto es stderrd, que utiliza la modificación en tiempo de ejecución de (la mayoría) de los programas para modificar los datos escritos en stderr.
Esta pregunta a la que se vincula Anko tiene buenas respuestas sobre ese tema relacionado: colorear la salida stdout / stderr:
¿Puedo configurar mi shell para imprimir STDERR y STDOUT en diferentes colores?