Con Bash Scripting, ¿cómo puedo suprimir todos los resultados de un comando?

Tengo un script bash que ejecuta un progtwig con parámetros. Ese progtwig genera algún estado (haciendo esto, haciendo eso …). No hay ninguna opción para que este progtwig sea silencioso. ¿Cómo puedo evitar que el script muestre algo?

Estoy buscando algo como Windows “echo off”.

Lo siguiente envía salida estándar al dispositivo nulo (bit bucket).

scriptname >/dev/null 

y si también quiere que se envíen mensajes de error allí, use uno de (el primero puede no funcionar en todos los shells):

 scriptname &>/dev/null scriptname >/dev/null 2>&1 scriptname >/dev/null 2>/dev/null 

y, si desea grabar los mensajes pero no los ve, reemplace /dev/null con un archivo real, como por ejemplo:

 scriptname &>scriptname.out 

Para completar, en Windows cmd.exe (donde “nul” es el equivalente de “/ dev / null”), es:

 scriptname >nul 2>nul 

Algo como

 script > /dev/null 2>&1 

Esto evitará la salida estándar y la salida de error, redirigiéndolas a /dev/null .

Tratar

 : $(yourcommand) 

: es la abreviatura de “no hacer nada”.

$() es solo tu comando.

Al igual que andynormancx post use esto: (si está trabajando en un entorno Unix)

 scriptname > /dev/null 

o puede usar esto: (si está trabajando en un entorno Windows)

 scriptname > nul 

Una alternativa que puede caber en algunas situaciones es asignar el resultado de un comando a una variable:

 $ DUMMY=`grep root /etc/passwd` $ echo $? 0 $ DUMMY=`grep r00t /etc/passwd` $ echo $? 1 

Como Bash y otros intérpretes de línea de comandos POSIX no consideran las asignaciones de variables como un comando, se respeta el código de retorno del comando presente.

Eche un vistazo a este ejemplo de The Linux Documentation Project :

3.6 Muestra: archivo stderr y stdout 2

Esto colocará cada salida de un progtwig en un archivo. Esto es adecuado a veces para entradas cron, si desea que un comando pase en silencio absoluto.

  rm -f $(find / -name core) &> /dev/null 

Dicho esto, puedes usar esta simple redirección:

 /path/to/command &>/dev/null 

En su secuencia de comandos puede agregar lo siguiente a las líneas que sabe que van a dar un resultado:

 some_code 2>>/dev/null 

O bien, también puedes probar

 some_code >>/dev/null