scripts script resueltos programa paso pasar parametros hacer español ejercicios ejemplos ejecutar desde como bash

resueltos - Cómo silenciar el resultado en un script Bash?



scripts linux ejercicios resueltos (6)

Prueba con:

myprogram &>/dev/null

para no obtener salida

Tengo un programa que da salida a stdout y me gustaría silenciar ese resultado en un script Bash mientras canalizo a un archivo.

Por ejemplo, ejecutar el programa generará:

% myprogram % WELCOME TO MY PROGRAM % Done.

Quiero que la siguiente secuencia de comandos no envíe nada a la terminal:

#!/bin/bash myprogram > sample.s


Si desea STDOUT y STDERR ambos [todo], entonces la forma más simple es:

#!/bin/bash myprogram >& sample.s

luego ./script como ./script , y no obtendrás salida a tu terminal. :)

el "> &" significa STDERR y STDOUT. el & también funciona de la misma manera con una tubería: ./script |& sed que enviará todo a sed


Si también se envía a stderr, querrá silenciarlo. Puede hacerlo redirigiendo el descriptor de archivo 2:

# Send stdout to out.log, stderr to err.log myprogram > out.log 2> err.log # Send both stdout and stderr to out.log myprogram &> out.log # New bash syntax myprogram > out.log 2>&1 # Older sh syntax # Log output, hide errors. myprogram > out.log 2> /dev/null


Si todavía está luchando por encontrar una respuesta, especialmente si produjo un archivo para la salida, y prefiere una alternativa clara: echo "hi" | grep "use this hack to hide the oputut :) " echo "hi" | grep "use this hack to hide the oputut :) "


Todos los resultados:

scriptname &>/dev/null

Portátil:

scriptname >/dev/null 2>&1

Portátil:

scriptname >/dev/null 2>/dev/null

Para más nuevo bash (no portátil):

scriptname &>-


2>&1

con esto redirigirá el stderr (que es el descriptor 2) al descriptor de archivo 1 que es el stdout

myprogram > sample.s

Ahora, al realizar esto, está redirigiendo la salida estándar al archivo sample.s

myprogram > sample.s 2>&1

La combinación de los dos comandos dará como resultado la redirección de stderr y stdout a sample.s

myprogram 2>&1 >/dev/null

Si quieres silenciar por completo tu aplicación