GNU/Linux >> Tutoriales Linux >  >> Linux

bash:redirigir stderr al archivo y stdout + stderr a la pantalla

Con un bash reciente, puede usar la sustitución de procesos.

foo 2> >(tee stderr.txt)

Esto solo envía stderr a un programa que ejecuta tee.

Más portátil

exec 3>&1 
foo 2>&1 >&3 | tee stderr.txt

Esto hace que el descriptor de archivo 3 sea una copia de la salida estándar actual (es decir, la pantalla), luego configura la canalización y ejecuta foo 2>&1 >&3 . Esto envía el stderr de foo al mismo lugar que el stdout actual, que es la tubería, luego envía el stdout a fd 3, la salida original. La tubería alimenta el stderr original de foo to tee, que lo guarda en un archivo y lo envía a la pantalla.


Linux
  1. ¿Qué forma de redirigir la salida de un programa y todavía hacer que vaya a la salida estándar?

  2. ¿Cómo redirigir Stderr y Stdout a diferentes archivos y también mostrarlos en la terminal?

  3. ¿Redirigir y canalizar la salida?

  4. ¿Cómo redirigir stderr y stdout a diferentes archivos en la misma línea en el script?

  5. Redirección de salida de comando a archivo y terminal

Cómo redirigir stderr a stdout en Bash

¿Confundido acerca de stdin, stdout y stderr?

Shell:redirigir stdout a /dev/null y stderr a stdout

Restaurar stdout y stderr al valor predeterminado

¿Es posible que el descriptor de archivo de Linux 0 1 2 no sea para stdin, stdout y stderr?

Captura de STDERR y STDOUT para archivar usando tee