Não é a saída do programa, são algumas informações úteis sobre o shell.
De qualquer forma, eles podem ser ocultados usando o subshell e o redirecionamento de saída
( sleep 3 & ) > /dev/null 2>&1
[USER@SERVER ~] sleep 3 &
[1] 5232
[USER@SERVER ~]
[1]+ Done sleep 3
[USER@SERVER ~]
Como eu / dev / null estas duas mensagens ?:
[1] 5232
[1]+ Done sleep 3
p.s .: então eu preciso da saída do processo, mas não das duas linhas mencionadas!
No bash ou zsh, você pode chamar disown %1
para dizer ao shell para esquecer o trabalho. Em seguida, o shell não imprimirá nenhuma mensagem sobre esse trabalho, nem mostrará quando você executar jobs
ou enviar um SIGHUP para ele. Em zsh, iniciar o trabalho com &!
em vez de &
é equivalente a chamar disown
imediatamente.
Não é possível comentar (ainda) sobre @Gilles, mas parece que & disown
também funciona no bash:
sleep 3 & disown
Tente:
user@host:~$ read < <( sleep 10 & echo $! )
user@host:~$ echo $REPLY
28677
E você ocultou a saída e o PID . Observe que você ainda pode recuperar o PID de $ REPLY