Explique por qué ver 'trabajos' no funciona pero ver 'ps' trabajar.

9

jobses mi comando favorito para ver mis códigos que se ejecutan en segundo plano. Para verificarlos dinámicamente, tiendo a escribir

watch 'jobs'

que no muestra nada sin embargo

watch 'ps'

funciona perfectamente. He estado cometiendo el mismo error durante meses.

Creo que entender por qué el primero no funciona mientras que el segundo funciona puede ayudarme a dejar de cometer el mismo error.

¿Alguien puede ayudar?

muchos
fuente
1
Una pregunta más útil sería " ¿cómo puedo hacer que funcione?" Sin embargo, por qué (en este caso) es más interesante.
ctrl-alt-delor

Respuestas:

20

jobses una función incorporada que informa sobre el estado del shell actual: los comandos que se encuentran en segundo plano con ese shell watchejecuta un nuevo shell para cada ejecución, y ese shell jobsno tiene forma de saber cuáles watchson los trabajos del shell principal. pses un comando externo y nunca usó el estado del shell.

muru
fuente