Ocultar la salida del comando de secuencia de comandos

Ocultar la salida del comando de secuencia de comandos

Estoy creando un script de shell para configurar automáticamente una computadora específica con la mejor configuración. Me gustaría ocultar todos los resultados de este script excepto el resultado de eco. ¿Es posible?

Respuesta1

Comience su guión con:

exec 3>&1 1>/dev/null 2>&1

Eso guardará su descriptor de archivo original para stdout en &3, y luego redirigirá stdout y stderr a /dev/null. Siempre que quieras imprimir algo, redirige su salida a &3, como:

echo "This message won't be output"
echo "But this one will" >&3

Y si desea ocultar ese detalle, puede simplemente definir una función que haga eco en fd 3:

say() {
    echo >&3 "$@"
}

say "This goes to the log"

Respuesta2

Puede redirigir stdout /dev/nullagregando

1>/dev/null

al final de cada línea de su secuencia de comandos que producirá el resultado.

Puede redirigir errores de la misma manera agregando

2>/dev/null

La mayoría de los comandos también tienen una opción para desactivar la salida normal a la consola -qo algo así. Consulte las páginas de manual de los comandos que utiliza.

información relacionada