Cómo usar las transmisiones Stdin, Stderr y Stdout en Bash

Cómo usar las transmisiones Stdin, Stderr y Stdout en Bash

Se abren tres transmisiones cuando se inicia el sistema operativo Linux. Estos son Stdin, Stdout y Stderr. La forma completa de stdin es una entrada estándar que se utiliza para tomar una entrada del usuario. La forma completa de STDOUT es la salida estándar que se utiliza para almacenar la salida del comando en el flujo de stdout. La forma completa de stderr es el error estándar que se utiliza para almacenar el mensaje de error que se genera a partir de cualquier comando en el flujo de datos. Los usos de estas transmisiones se muestran en este tutorial. Los valores del identificador numérico correspondientes de Stdin, Stdout y Stderr son 0, 1 y 2.

Operadores de redirección de Stdin, Stdout y Stderr

    • El "<” or “0<” is used for the stdin stream.
    • El ">" o "1>" se usa para la transmisión de stdout.
    • El "2" se usa para la corriente stderr.

Usos de stdin, stdout y stderr

Los usos de Stdin, Stdout y Stderr se muestran en esta parte del tutorial utilizando múltiples ejemplos.

Ejemplo 1: Uso de Stdin

El método para tomar el contenido de un archivo e imprimirlo en el terminal se muestra en este ejemplo.

Ejecute el siguiente comando "CAT" para crear un archivo de texto llamado TestData.txt con algo de contenido:

$ cat> testdata.TXT


Ejecute el siguiente comando "CAT" para agregar algún contenido en TestData.archivo txt:

$ cat >> testdata.TXT


Ejecute el siguiente comando "Cat" para tomar una entrada de TestData.archivo txt e imprímalo en el terminal:

$ gato < testdata.txt


Producción:

La siguiente salida aparece después de ejecutar los comandos anteriores después de agregar la cadena, "LinuxHint.com "y" lenguaje de secuencias de comandos "en los datos de prueba.archivo txt:


Ejemplo 2: Uso de stdout

El método de crear un archivo usando Pipe (|) y el operador de redirección se muestra en este ejemplo.

Ejecute el siguiente comando para escribir un datos de cadena en el archivo de texto llamado TestData2.txt por tubería. La salida del comando "echo" se envía a la entrada del comando "CAT" utilizando el operador de tubería (|):

$ Echo "Learn Bash Programming" | CAT> testData2.TXT


Ejecute el siguiente comando "CAT" para verificar el contenido de TestData2.archivo txt:

$ Cat TestData2.TXT


Producción:

La siguiente salida aparece después de ejecutar los comandos anteriores. Según la salida, la salida del comando "Echo" se escribe en TestData2.archivo txt:


Ejecute el siguiente comando para escribir la salida del comando "ls -l" en una lista de archivo de texto llamado.txt usando el operador de redirección ('>'):

$ ls -l> lista.TXT


Ejecute el siguiente comando "CAT" para verificar el contenido de la lista.archivo txt:

Lista de $ Cat.TXT


Producción:

La siguiente salida aparece después de ejecutar los comandos anteriores. Según la salida, la salida del comando "LS -L" se escribe en la lista.archivo txt:


Ejemplo 3: Uso de stdin y stdout

El método de usar STDIN y STDOUT para tomar una entrada de un archivo y escribirlo en un archivo se muestra en este ejemplo.

Ejecute el siguiente comando "Cat" para tomar el contenido de TestData.archivo txt y escríbelo en el archivo de prueba.archivo txt y el terminal:

$ gato < testdata.txt > archivo de prueba.TXT


Ejecute el siguiente comando "CAT" para imprimir el contenido de TestData.archivo txt:

$ Cat TestData.TXT


Ejecute el siguiente comando "Cat" para imprimir el contenido del archivo de prueba.archivo txt:

$ Cat TestFile.TXT


Producción:

La siguiente salida aparece después de ejecutar los comandos anteriores. Según la salida, el contenido de TestData.El archivo txt se escribe en el archivo de prueba.archivo txt e impreso en el terminal:


Ejemplo 4: Uso de stderr

El contenido del error estándar se puede imprimir en el terminal o redirigirse a un archivo o enviar a la /dev /null que funcione como el contenedor de reciclaje. Las diferentes formas de pasar el error estándar se muestran en este ejemplo.

El siguiente comando es válido e imprime la cadena "hola" con la nueva línea. Por lo tanto, no se genera ningún error estándar para el siguiente comando:

$ printf "%s \ n" "hola"


El siguiente comando no es válido porque no hay un comando llamado "PIRNTF". Por lo tanto, se genera un error estándar y el error se imprime en el terminal:

$ pirntf "%s \ n" "hola"


Producción:

La siguiente salida aparece después de ejecutar el comando anterior. Según la salida, el error estándar se imprime en el terminal:


A veces, requiere imprimir el error personalizado ocultando el error estándar para que el error sea más comprensible para los usuarios. Esta tarea se puede hacer redirigiendo el error al /dev /null. El "2>" se usa aquí para redirigir el error en /dev /null.

Ejecute el siguiente comando para redirigir el error en el /dev /null que no mostrará ningún error si existe un error:

$ pirntf "%s \ n" "hola" 2> /dev /null


Producción:

La siguiente salida aparece después de ejecutar el comando anterior. Según la salida, el error estándar no se imprime en el terminal para redirigir a /dev /null:


A veces, el error estándar requiere almacenar en un archivo para uso futuro. Esta tarea se puede realizar redirigiendo el error en un archivo utilizando el operador "2>".

Ejecute el siguiente comando para redirigir el error estándar en un archivo llamado error de error.TXT:

$ pirntf "%s \ n" "hola" 2> archivo de error.TXT


Ejecute el siguiente comando para verificar el contenido del archivo de error.archivo txt:

$ CAT ERRORFILE.TXT


Producción:

La siguiente salida aparece después de ejecutar los comandos anteriores. Según la salida, el error estándar se escribe correctamente en el archivo de error.archivo txt:


El error estándar se puede redirigir a ambos /dev /null y el archivo de error.archivo txt usando el siguiente comando:

$ PIRNTF "%S \ n" "Hello" 2> /dev /null> Errorfile.TXT

Conclusión

Los usos de Stdin, Stdout y Stderr se explican en este tutorial utilizando múltiples ejemplos que ayudarán a los usuarios de Linux a comprender el concepto de estas transmisiones y usarlas correctamente cuando sea necesario.