Tengo un script bash que crea algunos archivos usando dd. El problema es que dd arroja una gran cantidad de salida que va a interferir con la salida de mi script. Buscando alrededor he encontrado una solución:
dd if=boot1h of="/dev/r$temp1" >& /dev/null
¿Existe alguna alternativa o se está redirigiendo a /dev/nullla única forma?

/dev/null: estás suplantando porqueddnecesita acceso de escritura/dev/r$temp1(supongo). Necesitará hacerlo sin importar cómo suprimaddla salida; redirigir la salida a/dev/nullno requiere rootcat,headotailen su lugar.Respuestas:
Desde la
dd(1)página del manual:así:
Esto todavía genera el
basura cuando
ddsale, por lo que redirigir a un sumidero de datos es realmente su única opción.fuente
Añadir
status=none:Desde los documentos dd (coreutils) 8.21 :
fuente
info page; La respuesta inicial aquí tenía la cita exacta deman page. Hubiera copiado / pegado directamente de lainfopágina si lamanpágina es ambigua, pero realmente, depende de usted ... Oh, por cierto, muchas gracias por su otro comentario sobre mi respuesta relacionada con la clasificación por días de la semana.ddsinstatus=)dd: invalid status flag: `none' Try `dd --help' for more information.Para futura referencia:
Para suprimir la salida dd, redirija completamente stderr a / dev / null de esta manera:
Esto funciona bien si desea, por ejemplo, cronometrar el proceso utilizando el comando time en bash y asignar el resultado a una variable, sin obtener ninguno de los resultados que produce dd.
referencia: http://www.unix.com/shell-programming-and-scripting/131624-how-suppress-dd-output.html
fuente
Algo como esto también debería funcionar para usted con versiones recientes de BASH y ZSH:
PD: Este es solo un ejemplo que ejecuté ...
fuente
Con cualquier aplicación o comando de Unix, puede suprimir todos los resultados con
cmd >/dev/null 2>&1El primer bit redirige la salida estándar (número de unidad 1) a / dev / null. Pero necesita la segunda parte para redirigir TAMBIÉN la salida de error (número de unidad 2) al mismo lugar que el número 1.
En UNIX, STDIN = 0, STDOUT = 1 y STDERR = 2
fuente
stderrtiene el descriptor de archivo 2 . (Supongo "STDERR = 3" es sólo un error tipográfico.)cmd 2>logfile.txtparece más adaptadoSi entiendo correctamente lo que está tratando de hacer, ¿está poniendo ese
sudocomando en el script y espera que el script solicite su contraseña cuando se ejecute allí? En ese caso, solo estás haciendo las cosas de la manera complicada.Una solución más limpia es escribir el script de la manera habitual (es decir, sin
sudo) y ejecutarlo como superusuario . La razón detrás de esto es que si la secuencia de comandos necesita acceso de superusuario, solo dale el acceso (¿por qué esperar hasta cierto comando?). En el script, para verificar si se está ejecutando como root, haga algo como esto:fuente
sudoen primer lugar? Los usuarios normales deberían poder redirigir las cosas a la/dev/nullperfección.puede redirigir la salida a un archivo normal, es decir:
fuente