Como suprimir a exibição dos detalhes do trabalho anterior?

2

Quando executo um processo em segundo plano, o ID do processo é exibido no prompt de comando. Por exemplo:

$ gvim 1 &

[3] 9584

Agora, quando executo outro processo, o estado do anterior também é exibido. Por exemplo:

$ gvim 2 &

[4] 9500

[3]   Done                    gvimBackground 1 

Existe alguma maneira de suprimir a exibição do PID atual e dos dados relacionados aos processos anteriores?

    
por user30248 14.01.2013 / 02:39

2 respostas

1

Coloque seu comando inteiro, incluindo o & , entre parênteses:

 (prompt)$ gvim 1 &
[3] 9584
 (prompt)$ some other command
[3] Done gvimBackground 1
 (prompt)$ (gvim 1 &)
                                                                <– (silence)
 (prompt)$

    
por 14.01.2013 / 03:24
0

Não é tanto que o status de outros trabalhos seja relatado quando você inicia um novo, mas que as alterações de status são, por padrão, relatadas apenas antes que um prompt seja exibido. Então, no seu caso, é relatado na primeira oportunidade, que está no prompt exibido depois que você inicia seu segundo trabalho.

Você pode tornar o relatório de trabalho síncrono emitindo:

set -b

Nesse caso, os relatórios sobre conclusão ou suspensão ... de tarefas em segundo plano são feitos assim que isso acontece e você não precisa aguardar o próximo prompt.

Se você não quiser ser notificado sobre a conclusão de um trabalho, como o @Scott diz, você pode iniciá-lo como um trabalho de um subshell (job &) ou disown usando o comando disown (ou com zsh, inicie-o como job &! ), mas observe que isso significa que você não pode colocá-lo em primeiro plano ou matá-lo usando um número de trabalho.

    
por 15.01.2013 / 16:47