Redirigir stderr usando el comando tee en ubuntu

Redirigir stderr usando el comando tee en ubuntu

El comando Tee toma la entrada estándar y la envía a uno o más archivos y la salida estándar. El comando de tee se deriva del brote de tubería. Simplemente desglose la salida de un programa para que se pueda mostrar y guardar en un archivo. Realiza ambos trabajos simultáneamente, copia la salida a los archivos o variables dados, y muestra la salida.

Sintaxis:

$ tee [opciones] [archivo]

Opciones:

  • -a: Agregar (en lugar de sobrescribir los archivos, agregarlos a los existentes)
  • -i: Ignorar las interrupciones (ignore las señales que interrumpen)

Archivos: hay varios archivos. Los datos de salida se escriben a cada uno de ellos.

El descriptor de archivo predeterminado para el proceso de escritura de mensajes de error es stderr, a menudo conocido como error estándar. Los errores estándar se pueden reenviar a la línea de comando en Bash. Este artículo se trata de redirigir la salida de Stderr utilizando el comando Tee en diferentes escenarios.

Redirige stderr usando el comando tee

Los errores estándar se reenvían a la línea de comando en Bash. Redirección de stderr podría permitirle capturar mensajes de error en un archivo de registro distinto o eliminar los mensajes de error por completo. Explicaremos el procedimiento para redirigir stderr usando el comando tee con los siguientes ejemplos.

Paso 1: crear un archivo bash

Primero, cree un archivo bash "Linux.SH ”Usando el siguiente comando:

$ nano linux.mierda

Paso 2: Escribe el código

Ahora, escriba el siguiente código en el archivo, o puede escribir algo más según su requisito:

ps!/bin/bash
Echo hola
1> y 2 Echo World

Paso 3: verifique si el archivo bash está funcionando

Ahora, verifique si el archivo bash funciona correctamente o si el código escrito en él es correcto ejecutando el siguiente comando en el terminal:

ps ./Linux.mierda

El resultado dado da al resultado correcto, lo que demuestra que el código funciona correctamente.

Ejecute otro comando mencionado a continuación para verificar el código de trabajo:

ps ./Linux.sh>/dev/null

Ahora, ejecute el siguiente comando para verificar el funcionamiento del código:

ps ./Linux.sh 2>/dev/null

Obtuvimos el resultado esperado; Significa que el código es correcto.

Paso 4: redirige el stderr al comando tee

El> (...) (sustitución del proceso) establece un FIFO y lo pone a disposición del tee para escuchar. Luego, emplea> (redirección de archivos) para enviar el stdout del comando al FIFO que su primer tee está monitoreando.

El siguiente comando redirige a Stderr al tee. Redirige la salida a "/tmp/log":

ps ./Linux.sh 2 >> (tee /tmp /log)

Ahora, envíe el archivo en el que redirigimos la salida.

$ CAT /TMP /LOG

Por defecto, el TEE se imprime a stdout. Imprima esto a stderr.

ps./Linux.sh 2 >> (tee/tmp/log> & 2))>/dev/null

Conclusión

El comando Tee lee los datos de un archivo/archivos de entrada y escribe la salida recibida en muchos archivos. Los errores de redireccionamiento a Stderr se pueden hacer con la ayuda del comando tee. Hay muchas formas de redirigir la salida. Pero en este artículo, describimos un procedimiento, con la ayuda de un ejemplo, para redirigir a STDERR al tee usando un archivo bash y mostramos la salida en Ubuntu (sistema operativo Linux). Encontrará este artículo útil para redirigir stderr usando el comando tee.