¿Qué hace la salida a / dev / null en scripts bash? [duplicar]

95

A menudo me encuentro con pequeños scripts bash que usan este tipo de sintaxis en sentencias if:

some command > /dev/null 2>&1

¿Cuál es el propósito de generar un% de /dev/null así, y qué significa el 2>&1 ?

Siempre parece funcionar, pero me gustaría saber qué está haciendo.

    
pregunta javanix 08.11.2010 - 15:20

2 respuestas

127

>/dev/null redirige la salida estándar del comando al dispositivo nulo, que es un dispositivo especial que descarta la información escrita en él

2 >&1 redirige la secuencia de error estándar a la secuencia de salida estándar (stderr = 2, stdout = 1).

En la práctica, impide que se visualice cualquier salida del comando (stdout y stderr). Se usa cuando no te importa la salida del comando.

    
respondido por el João Pinto 08.11.2010 - 15:31
53

STDIN está representado por 0, STDOUT por 1 y STDERR por 2.

/ dev / null es el cubo de bits: el lugar donde vuelcas cualquier cosa que no necesites.

Entonces, el STDOUT se redirige al cubo de bits (papelera) y el STDERR se redirige al lugar donde se encuentra el STDOUT: el cubo de bits.

También puedes hacer esto:

>/dev/null 2>/dev/null
    
respondido por el Sid 08.11.2010 - 15:59

Lea otras preguntas en las etiquetas