Redireccionando errores (bash)

Muchos de ustedes ya deben de conocer el comando echo para desplegar texto. Bueno pues en esta ocasión quiero mostrar un ejemplo de cómo podemos redireccionar la salida de este a un archivo, y lo más importante como separar el error de un script.

Por default, el texto es redireccionado a una "salida estándard", en ingles "standard out" (STDOUT), pero también podemos redireccionar el "error estandard" que de igual manera en inglés sería "stándard error" (STDERR). En el siguiente ejemplo se muestra con un script de Bash el comando echo desplegando el famoso mensaje "Hello, world" al STDOUT.

[student@versa bin]$ cat hello
#!/bin/bash

echo "Hello, world"
[student@versa bin]$ ./hello
Hello, world

Esto les puede parecer muy sencillo, pero es muy utilizado en el mundo de los scripts, ahora lo importante en esto es como podemos redireccionar la salida solamente del error para poderlo anexar a un log, de esta manera evitaríamos estar logueando información que muchas veces no es muy útil. Cuando generemos nuestros scripts es muy importante que nuestros mensajes de error siempre sean redireccionados a STDERR para hacer más fácil la lectura diferenciando los errores de mensajes de estatus normales.

En el siguiente ejemplo lo muestra.

[student@versa bin]$ cat hello_error
#!/bin/bash

echo "Hello, world"
echo "ERROR: Esto es un error de ejemplo" >&2
[student@versa bin]$ ./hello_error 2> hello_error.log
Hello, world
[student@versa bin]$ cat hello_error.log
ERROR: Esto es un error de ejemplo

Como pudieron observar el comando echo resulta muy útil a la hora de querer realizar un debug de un error en un shell script.

No tiene permisos para hacer comentarios, registrate en el sitio.

Buscar en el sitio

Noticias Recientes

TIPS

Para cambiar el esquema por default de tu conexión en Oracle solo es necesario ejecutar:

ALTER SESSION SET current_schema="Nombre_esquema"

Necesitas Soporte

Proveemos soporte de base de datos SQL Server, Sybase, Oracle y MySQL. Nuestro servicio, le permite contar con un experto las 24 horas al día los 365 días del año.

Nuestros servicios están diseñados para que solo pague por el soporte que necesita. El pago se realiza de manera mensual basado en el nivel de cobertura que requiera. En promedio este costo va de un 30% a un 60% menos, de lo que le pagaría a un DBA en sitio.

Contactanos

Comodo SSL