+/- nachdem ein Job im Hintergrund erledigt ist


21

Führen Sie einen Job im Hintergrund aus

$ command &

Wenn dies erledigt ist, wird das Terminal gedruckt

[n]+    command

oder

[n]-    command

Manchmal ist es ein Plus und manchmal ein Minus [n].

Was bedeutet Plus / Minus?

Antworten:


19

Sie sollen zwischen aktueller und vorheriger Tätigkeit unterscheiden; Der letzte Job und der vorletzte Job für mehr als zwei Jobs, mit +dem letzten und -dem vorletzten.

Von man bash:

Der vorherige Job kann mit referenziert werden %-. Wenn es nur einen Job gibt %+und %-beide verwendet werden können, um auf diesen Job zu verweisen. Bei der Ausgabe von Jobs (z. B. der Ausgabe des Befehls jobs) ist der aktuelle Job immer mit einem +und der vorherige Job mit einem gekennzeichnet -.

Beispiel:

$ sleep 5 &
[1] 21795

$ sleep 5 &
[2] 21796

$ sleep 5 &
[3] 21797

$ sleep 5 &
[4] 21798

$ jobs
[1]   Running                 sleep 5 &
[2]   Running                 sleep 5 &
[3]-  Running                 sleep 5 &
[4]+  Running                 sleep 5 &

$ 
[1]   Done                    sleep 5
[2]   Done                    sleep 5
[3]-  Done                    sleep 5
[4]+  Done                    sleep 5

2

Ich vermute, Sie beziehen sich auf, wenn Sie Jobs über prüfen $jobs. Allerdings, wie Sie wahrscheinlich bereits wissen, nbezeichnet der Job #. Das [n] +kennzeichnet den letzten aufgerufenen Job. [n] -bezeichnet den vorletzten aufgerufenen Job.

Beispielsweise:

chris@chris-VirtualBox:~$ sleep 30 &
[1] 904
chris@chris-VirtualBox:~$ sleep 50 &
[2] 972
chris@chris-VirtualBox:~$ jobs
[1]-  Running                 sleep 30 &
[2]+  Running                 sleep 50 &

Deshalb ist in diesem Fall unser sleep 50 &letztes [2]+und sleep 30 &vorletztes:[1]-


Ihre Beschreibung der Situation ist unklar und das System sagt nicht voraus, welcher Job zuerst enden wird.
— Julie Pelletier

Ich verstehe, was Sie meinen, ich werde den Hauptpunkt betonen
— Klamz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.