Bash:
Escribiendo en el error estándar
Cómo hacerlo:
En Bash, se utiliza >&2 para redirigir la salida hacia stderr. Aquí hay un ejemplo básico:
echo "Este es un mensaje normal"
echo "Este es un mensaje de error" >&2Ejecutar este script mostrará ambos mensajes en la consola, pero si los rediriges, puedes separar el stdout del stderr. Por ejemplo:
bash script.sh > output.txt 2> error.txtoutput.txt contendrá "Este es un mensaje normal", mientras que error.txt capturará "Este es un mensaje de error".
Para un caso de uso práctico, considera un script que procesa archivos e informa un error si un archivo no existe:
filename="ejemplo.txt"
if [ ! -f "$filename" ]; then
echo "$filename no existe!" >&2
exit 1
else
echo "Procesando $filename"
fiSalida de muestra directamente en la consola cuando ejemplo.txt no existe:
ejemplo.txt no existe!No hay bibliotecas de terceros directas en Bash para manejar stderr, ya que la redirección cuenta con soporte nativo y generalmente es suficiente. Sin embargo, para aplicaciones complejas, se pueden incorporar marcos de registro o herramientas de registro externas como syslog o log4bash para gestionar tanto stdout como stderr de manera más efectiva.