Salida de supresión de bash

Dr. Muhammad Abdullah 20 junio 2023
  1. Introducción a Shell y secuencias de comandos
  2. Suprimir la salida del comando en Bash Script
Salida de supresión de bash

Este artículo explicará métodos para suprimir la salida de comandos usando Bash. Además, también buscaremos redirigir la salida a un archivo para su uso posterior.

Introducción a Shell y secuencias de comandos

Shell es un programa que ejecuta una interfaz de línea de comandos en Linux. En Linux, todos los usuarios pueden usar muchos shells diferentes.

Comúnmente, un Bourne-Again Shell (Bash) predeterminado de GNU se usa en muchas distribuciones de Linux.

Un archivo que contiene una serie de comandos se denomina script. Este archivo se lee y ejecuta usando el programa Bash.

Por ejemplo, suponga que un archivo con el nombre First.sh tiene el siguiente contenido:

#!/bin/bash
echo "Hello"
echo "World"

En el ejemplo anterior, First.sh es un archivo de script que contiene dos comandos echo que mostrarán Hello World en la terminal cuando se ejecute el script. La primera línea, #!/bin/bash, marca la ubicación del intérprete que se usará para ejecutar el script.

Podemos ejecutar el script Bash en la terminal de Linux de dos formas diferentes.

bash First.sh

Producción :

Hello
World
./First.sh

Producción :

Hello
World

Suprimir la salida del comando en Bash Script

Podemos suprimir la salida de cualquier comando escrito en un script Bash durante la ejecución de un script Bash. Podemos redirigir la salida a un dispositivo nulo.

Por ejemplo, si queremos suprimir la salida del script First.sh, podemos usar el siguiente comando.

./First.sh > /dev/null

Este comando suprime la salida del script First.sh y no muestra nada en la terminal. Sin embargo, si el script First.sh contiene algún error, aún se mostrará en la terminal.

Considere el siguiente comando en el script First.sh.

#!/bin/bash
echo "Hello
echo "World"

En la secuencia de comandos, " falta en el primer comando echo. El resultado de la ejecución de la siguiente secuencia de comandos utilizando ./First.sh es el siguiente:

./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file

Si ejecutamos este script usando el comando ./First.sh > /dev/null mostrará el mismo resultado.

./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file

Suprimir errores de un script Bash

Si algún script de Bash contiene un error, el comando ./scriptname > dev/null no suprime el error y lo muestra en la terminal, como se mencionó anteriormente.

También podemos suprimir el error desde la terminal. Los siguientes comandos pueden suprimir la salida y el error del terminal mientras se ejecuta el script Bash First.sh.

./First.sh &>/dev/null
./First.sh >/dev/null 2>&1
./First.sh >/dev/null 2>/dev/null

El primer comando ./First.sh &>/dev/null tal vez no funcione para todos los shells de Linux.

Grabar o almacenar la salida de scripts Bash

La salida se suprime cuando usamos /dev/null durante la ejecución del script Bash. Sin embargo, podemos almacenar o grabar la salida en archivos personalizados.

Considere el siguiente script First.sh.

#!/bin/bash
echo "Hello"
echo "World"

Podemos usar el siguiente comando para ejecutar el script First.sh para almacenar o registrar la salida de Bash.

./First.sh > outputfile.out

Cuando ejecutamos el comando anterior, no mostrará nada en la terminal; sin embargo, se crea un nuevo archivo con el nombre outputfile.out (si aún no existe), y el contenido del archivo es:

Hello
World

Si el archivo de salida.out ya existe, el contenido existente se barniza y la nueva salida del script se almacena en el archivo.

Artículo relacionado - Bash Output