Explique por que assistir 'empregos' não funciona, mas assistir 'ps' funcionar?

9

jobsé o meu comando favorito para ver meus códigos que estão sendo executados em segundo plano. Para checá-los dinamicamente, costumo digitar

watch 'jobs'

que não exibe nada. Contudo

watch 'ps'

funciona perfeitamente. Eu tenho cometido o mesmo erro há meses.

Acho que entender por que o primeiro não funciona enquanto o segundo funciona pode me ajudar a parar de cometer o mesmo erro.

Alguém pode ajudar?

muitos
fonte
1
Uma pergunta mais útil seria " como posso fazê-lo funcionar?" No entanto, por que (neste caso) é mais interessante.
ctrl-alt-delor 27/07/19

Respostas:

20

jobsé um built-in que relata o estado do shell atual: os comandos que foram colocados em segundo plano com esse shell. watchexecuta um novo shell para cada execução, e esse shell jobsnão tem como saber quais watchsão os trabalhos do shell pai. psé um comando externo e nunca usou o estado do shell.

muru
fonte