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.