2012-05-03 15 views
8

Llamo un script en mi .bashrc para imprimir la cantidad de mensajes nuevos que tengo cuando abro el terminal, quiero que la llamada no sea bloqueada, ya que accede al red y algunas veces toma unos segundos, lo que significa que no puedo usar la terminal hasta que se complete.bash "&" without printing "[1] + Listo"

Sin embargo si pongo:

mailcheck & 

en mi .bashrc, que funciona bien. pero luego imprime una línea en blanco y tengo cuando pulso entrar y lo imprime

[1]+ Done     ~/bin/mailcheck 

Esto es muy desordenado hay una manera de evitar esto?

+0

¡Qué pregunta tan perspicaz! +1 –

Respuesta

9

Ese mensaje no viene de MailCheck, es de decir el control de trabajos de fiesta acerca de su trabajo de fondo. La forma de evitarlo es decir bash que no desea que sea administrado por el control de trabajo:

mailcheck & 
disown $! 
+0

¿Por qué no simplemente 'mailcheck & disown'? –

2

intento tuberías stderr a/dev/null

mailcheck & 2>/dev/null 

Pensando en ello durante unos minutos, otra manera podría ser el uso de escritura.
Transmita la salida de la tarea en segundo plano a usted mismo, de esa manera puede completarla en cualquier momento y puede almacenar cualquier salida adicional desde stdout y stderr.

mailcheck | write $(whoami) & > /dev/null 
+0

No lo siento debería haber dicho que lo intenté, no parece ser stderr –

+0

no debería ser stderr porque no es un error. ya que se ejecuta en segundo plano, solo le informa que el proceso ha finalizado correctamente. tal vez stdout? –

+0

Eso tampoco está bien, no entiendo esto, si no es stdout o stderr, ¿qué es? –

3

Puede llamar al script como el siguiente:

(exec mailcheck &) 
+0

todavía no es bueno Me sale: [1] + Ejecutado exec/bin/mailcheck –

+0

Está funcionando bien en mis pruebas. Cuando incluyo una llamada de script en mi .bashrc, no recibo ningún mensaje 'Hecho' cuando inicio sesión la próxima vez. – anubhava

+0

Sí, lo siento, es correcto Me perdí los corchetes –

4

Esto parece funcionar:

(mailcheck &) 
+0

Parece que funciona sin la redirección. –

+0

@Dennis: bien visto - Sacaré la redirección. –