tenga en cuenta que al usar esto, pierde el control de los trabajos dentro del shell de la persona que llama ( jobsno mostrará nada).
mighq
36
Ejecute el shell incorporado:
$ set+m
Esto funciona desactivando el "modo monitor" para que el shell no informe la finalización de trabajos en segundo plano.
Aunque ejecuta el comando en una subshell como:
$ (sleep 2&)
... también deshabilitará el mensaje, la única razón por la que funciona es porque el modo monitor está habilitado de manera predeterminada solo para shells interactivos. Es decir, el subshell evita el mensaje ejecutando un shell adicional que tiene un "set + m" automático .
Hay que tener en cuenta que esta salida no es realizada por el sueño. Es el shell bash que solo te informa sobre el trabajo de fondo terminado.
flolo
8
Me gustaría aclarar las dos respuestas anteriores. Si lo que quiere es nunca ver el mensaje Listo de ningún comando en su shell, ese set +mes el camino a seguir. Simplemente póngalo en su .profile y / o .bashrc y listo. Sin embargo, tenga en cuenta que si escribe esto:
set+m
sleep 2&set-m
y el sueño termina después de la final set -m, aún recibirá el mensaje hecho.
Si desea deshabilitar el mensaje para una invocación de comando único, la técnica de subshell (sleep 2 &)es el camino a seguir.
Con toda honestidad, solo lo sabía set +m, así que +1 a Wooble por iluminarme. Sin embargo, vale la pena señalar que cuál de las dos soluciones que desea depende de lo que está tratando de hacer.
jobs
no mostrará nada).Ejecute el shell incorporado:
Esto funciona desactivando el "modo monitor" para que el shell no informe la finalización de trabajos en segundo plano.
Aunque ejecuta el comando en una subshell como:
... también deshabilitará el mensaje, la única razón por la que funciona es porque el modo monitor está habilitado de manera predeterminada solo para shells interactivos. Es decir, el subshell evita el mensaje ejecutando un shell adicional que tiene un "set + m" automático .
fuente
Me gustaría aclarar las dos respuestas anteriores. Si lo que quiere es nunca ver el mensaje Listo de ningún comando en su shell, ese
set +m
es el camino a seguir. Simplemente póngalo en su .profile y / o .bashrc y listo. Sin embargo, tenga en cuenta que si escribe esto:y el sueño termina después de la final
set -m
, aún recibirá el mensaje hecho.Si desea deshabilitar el mensaje para una invocación de comando único, la técnica de subshell
(sleep 2 &)
es el camino a seguir.Con toda honestidad, solo lo sabía
set +m
, así que +1 a Wooble por iluminarme. Sin embargo, vale la pena señalar que cuál de las dos soluciones que desea depende de lo que está tratando de hacer.fuente
Sin una subshell , puede hacer lo siguiente:
Basado en esta respuesta .
fuente