Erklären Sie, warum "Jobs" nicht funktionieren, sondern "ps" funktioniert.

9

jobsist mein Lieblingsbefehl, um meine Codes zu sehen, die im Hintergrund ausgeführt werden. Um dynamisch nach ihnen zu suchen, neige ich dazu zu tippen

watch 'jobs'

was nichts anzeigt. jedoch

watch 'ps'

funktioniert perfekt. Ich mache jetzt seit Monaten den gleichen Fehler.

Ich denke, zu verstehen, warum das erste nicht funktioniert, während das zweite funktioniert, kann mir helfen, den gleichen Fehler zu stoppen.

Kann jemand helfen?

viele
quelle
1
Eine nützlichere Frage wäre: " Wie kann ich es zum Laufen bringen?" Warum (in diesem Fall) ist jedoch interessanter.
Strg-Alt-Delor

Antworten:

20

jobsist eine integrierte Funktion, die über den Status der aktuellen Shell berichtet: die Befehle, die mit dieser Shell im Hintergrund ausgeführt wurden. watchführt für jede Ausführung eine neue Shell aus, und diese Shell jobskann nicht erkennen, welche watchJobs die übergeordnete Shell hat. psist ein externer Befehl und hat nie den Status der Shell verwendet.

muru
quelle