scripts script resueltos programas programacion pasar parametros manejo español ejercicios ejemplos comandos cadenas bash shell scripting echo

bash - programas - scripts linux ejercicios resueltos



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

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

Estoy buscando algo así como ventanas "echo off".


Al igual que la publicación de andynormancx, 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


Algo como

script > /dev/null 2>&1

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


Eche un vistazo a este ejemplo del Proyecto de documentación de Linux :

3.6 Ejemplo: archivo stderr y stdout 2

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

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

Dicho esto, puedes usar esta redirección simple:

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


En su script, puede agregar lo siguiente a las líneas que sabe que van a dar un resultado:

some_code 2>>/dev/null

O también puedes probar

some_code >>/dev/null


Lo siguiente envía una salida estándar al dispositivo nulo (grupo de bits).

scriptname >/dev/null

y si también desea 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 verlos, reemplace /dev/null con un archivo real, como:

scriptname &>scriptname.out

Para completar, bajo Windows cmd.exe (donde "nul" es el equivalente de "/ dev / null"), es:

scriptname >nul 2>nul


Tratar

: $(yourcommand)

: es la abreviatura de "no hacer nada".

$() es sólo su comando.


Una alternativa que puede encajar 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

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