Cómo redirigir a Stderr a Stdout en Bash

Cómo redirigir a Stderr a Stdout en Bash
Los comandos en Linux toman alguna entrada del usuario, que podría ser un archivo o cualquier atributo, y al ejecutar, dan alguna salida llamada salida estándar. La salida estándar podría ser una salida de éxito o una salida de error; Ambos se mostrarán en la pantalla de su terminal. Pero en algunos casos, desea almacenar salidas estándar en un archivo para probar o depurar el código. En Linux, estas salidas se pueden redirigir a un archivo y el proceso de capturarlo llamado redirección.

Cada proceso en Linux produce tres flujos de datos, "Stdin", "Stdout" y "Stderr":

  • stdin: Toma la entrada del usuario a través del teclado
  • stdout: Muestra la salida en la pantalla
  • stderr: Muestra información de error en la pantalla

Cada flujo de datos tiene una identificación numérica:

Identificación numérica Nombre
0 stdin
1 stdout
2 stderr

Expliquemos una redirección un poco más con detalles:

Cómo redirigir la salida estándar y el error estándar en BASH:

Para redirigir la salida estándar del comando, usaremos "1" con un operador de redirección que sea mayor que el signo ">":

$ ls 1> stdout.TXT

El comando anterior creará un archivo y colocará la salida estándar del comando "ls" en el "stdout.archivo txt ".

Para leer el "stdout.archivo txt ", use:

$ Cat stdout.TXT

Podemos redirigir el error estándar a un archivo también utilizando el comando:

$ Cat MyFile.txt 2> stderr.TXT

Para ver el "stderr.archivo txt ", use:

$ Cat stderr.TXT

Asegúrese de que el uso "2" sea mayor que el signo ">". Dado que no hay "myfile.Archivo TXT "En el directorio, el comando" CAT "dará un error que se agregará en el" STDERR.archivo txt ".

Estas salidas estándar se pueden redirigir con un solo comando también, use:

$ ls 1> stdout.txt 2> stderr.TXT

La salida del comando "ls" se escribirá en el "stdout.TXT"Archivo, pero el"stderr.TXT"Permanecerá vacío porque no habría error.

Ahora hagamos por "Stderr.TXT":

$ Cat MyFile.txt 1> stdout.txt 2> stderr.TXT

Use el comando mencionado a continuación para leer "stderr.TXT."

$ Cat stderr.TXT

Y, por supuesto, "Stdout.txt "estará vacío.

Conclusión:

El comando Linux al ejecutar proporciona una salida estándar que podría ser una salida de éxito o una salida de error. En general, estas salidas no pueden redirigirse utilizando operadores de redirección; Necesitamos usar ID numéricos específicos con el signo ">". En esta guía, aprendimos cómo usar estas claves numéricas para redirigir la salida estándar a un archivo con ejemplos.