Echo a stderr en Bash

MD Aminul Islam 20 junio 2023
Echo a stderr en Bash

Una secuencia de comandos Bash incorporada de variable de mensajes de error predeterminada se conoce como stderr. También se conoce como error estándar, un dispositivo de salida predeterminado para errores.

A veces debemos redirigir los errores al canal de salida. El entorno Linux identifica cada objeto de archivo con su descripción, conocida como FD.

Es un valor entero positivo que identifica la sesión de archivo abierto. Para stderr, el valor del descriptor de archivo es 2.

Este artículo aprenderá sobre el stderr y su funcionalidad. Además, veremos algunos ejemplos que facilitarán el tema.

Echo a stderr en Bash

El comando stderr se utiliza principalmente para guardar un registro de error durante la ejecución de cualquier comando. La sintaxis general de este comando es:

Your command here 2>error.log

En la sintaxis de muestra compartida anteriormente, puede encontrar un símbolo 2> y un archivo llamado error.log. Ahora el 2> indica el valor de FILE DESCRIPTOR, que representa la identidad de stderr.

En nuestro caso, el valor del DESCRIPTOR DE ARCHIVO es 2. Ahora el nombre de archivo que proporcionamos es para el archivo de registro generado durante la ejecución del comando.

También puede “hacer eco” del mensaje stderr siguiendo el formato de sintaxis a continuación.

Your command here >&2 echo "error"

Veamos un ejemplo para facilitar el tema. Supongamos que hemos creado un comando de error y queremos hacer eco del mensaje de error de salida.

Ahora nuestro código de ejemplo se verá así:

echo $( 3 + 2 )) >&2 echo "error"

En el código compartido anteriormente, cometimos un error intencionalmente para comprender cómo funciona. Quitamos uno de los corchetes aquí, así que esto puede ser un error.

Después de eso, mostramos ese error con el echo. Una salida como la siguiente se muestra después de ejecutar el código anterior.

./example.sh: line 1: syntax error near unexpected token `)'
./example.sh: line 1: `echo $( 3 + 2 )) >&2 echo "error" '

Ahora corregimos el código como se muestra a continuación y ejecutamos el comando nuevamente.

echo $(( 3 + 2 )) >&2 "No error has been found."

Después de ejecutar el código, obtendrá un resultado como el siguiente.

5 No error has been found.

Todos los códigos utilizados en este artículo están escritos en Bash. Solo funcionará en el entorno Linux Shell.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - Bash Echo