Sidebar

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.


Tips BD