Tengo un montón de comandos zshrc
que invocan otro comando en segundo plano. El comando en segundo plano es un alias de un programa de conversión de texto a voz (lo uso para darme señales de audio cuando finalizan procesos como conjuntos de pruebas y parches).
Actualmente se invoca así:
alert "Message for this current task" &
Bastante simple.
Sin embargo, cuando uso este formato, obtengo este resultado:
$ alert "Foobar" &
[1] 85072
$
[1] + done alert "Foobar"
$
Quiero suprimir la salida del pid y el done
mensaje. ¿Cómo puedo hacer eso?
Lo intenté alert "Foobar" > /dev/null &
pero eso solo canaliza la salida de alerta a devnull.
Lo intenté alert "Foobar" & > /dev/null
pero eso hizo cosas malas inesperadas que no entiendo del todo.
¿Cómo lo uso &
en modo 'silencioso'?
Respuesta1
Puede utilizar un subshell para deshacerse de los mensajes de control del trabajo:
$ alias alertme="xmessage Alert!"
$ ( alertme & )
$
Si su comando también produce algunos resultados a STDOUT y/o STDERR, canalícelos a /dev/null
:
$ ( alertme > /dev/null 2>&1 & )
Respuesta2
Una versión un poco más clara de otra respuesta aquí:
(&>/dev/null alertme &)