Cómo redirigir 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 ejecutarse, dan una 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 se llama 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:
Numeric Id | Name |
0 | stdin |
1 | stdout |
2 | stderr |
Expliquemos la redirección un poco más con detalle:
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 mayor que el signo ">":
El comando anterior creará un archivo y colocará la salida estándar del comando "ls" en el archivo "stdout.txt".
Para leer el archivo "stdout.txt", use:
También podemos redirigir el error estándar a un archivo usando el comando:
Para ver el archivo "stderr.txt", utilice:
Asegúrese de que el uso de "2" sea mayor que el signo ">". Dado que no hay un archivo "myfile.txt" en el directorio, el comando "cat" generará un error que se agregará en el archivo "stderr.txt".
Estas salidas estándar también se pueden redirigir con un solo comando, use:
La salida del comando "ls" se escribirá en el archivo "stdout.txt", pero el "stderr.txt" permanecerá vacío porque no habrá ningún error. .
Ahora hagamos por "stderr.txt":
Use el comando mencionado a continuación para leer "stderr.txt. ”
Y, por supuesto, "stdout.txt" estará vacío.
Conclusión:
El comando de Linux al ejecutarse da una salida estándar que podría ser una salida de éxito o una salida de error. Por lo general, estas salidas no se pueden redirigir mediante operadores de redirección; necesitamos usar identificadores numéricos específicos con el signo ">". En esta guía, aprendimos a usar estas teclas numéricas para redirigir la salida estándar a un archivo con ejemplos.