Was bedeuten diese +/-, wenn der Linux-Job im Hintergrund beendet wird? (Begonnen mit &)

43

Wenn ich einen Prozess mit einem kaufmännischen Und ( &) am Ende beginne , wird er in den Hintergrund verschoben. Wenn es fertig ist, erhalte ich eine ähnliche Ausgabe wie

[1]+  Fertig   my_script

Ich habe eine lokalisierte Distribution, aber das sollte keine Rolle spielen.

Was ich sehe, ist die Job-ID in eckigen Klammern, gefolgt von einem Pluszeichen ( +).

Wenn ich mehrere Jobs gleichzeitig gestartet habe, bekomme ich

[1]-  Fertig   my_script
[2]+  Fertig   my_script

Jetzt habe ich ein Minus ( -) für den ersten Job und ein Plus ( +) für den zweiten.

Ich frage mich, was diese +/ -bedeuten.

Konnte keine Antwort mit Internet-Suchmaschinen finden.

Phil
quelle

Antworten:

57

Von man bash:

Bei der Ausgabe von Aufträgen (z. B. der Ausgabe des jobsBefehls) ist der aktuelle Auftrag immer mit einem +und der vorherige Auftrag mit einem gekennzeichnet -.

Das heißt, der mit einem gekennzeichnete Job +ist derjenige, der zuletzt in den Hintergrund gesendet wurde.

Es ist auch das, was in den Vordergrund gerückt wird, wenn fges ohne Argumente verwendet wird:

$ /tmp/script &
[1] 9871
$ /tmp/script2 &
[2] 9876
$ /tmp/script3 &
[3] 9881
$ /tmp/script4 &
[4] 9886
$ jobs
[1]   Running                 /tmp/script &
[2]   Running                 /tmp/script2 &
[3]-  Running                 /tmp/script3 &
[4]+  Running                 /tmp/script4 &
$ fg
/tmp/script4

Der mit a gekennzeichnete Auftrag -wurde vorletzter in den Hintergrund verschoben. Andere Hintergrundjobs werden nicht markiert.

jaume
quelle
Ich bin froh, dass ich helfen konnte.
Jaume
1
Das + ist also nützlich, um anzugeben, was die fg / bg-Befehle bewirken, aber ist das - für irgendetwas nützlich?
Tsbertalan
@tsbertalan Ich stimme zu, ich kann keine Verwendung dafür sehen. Ich finde es auch verwirrend, ich erwarte lieber, dass der - zuerst in den Hintergrund gesendete Job identifiziert wird , aber vielleicht
bin
Ich sehe dort manchmal zwei Pluspunkte oder zwei Minuspunkte. Passt nicht wirklich zur 'letzten' oder 'aktuellen' Definition. Das ist bash 4.3.42.
Jan-Philip Gehrcke
8
@tsbertalan Ich mache Strg + Z, um dann fg -zwischen zwei Jobs zu wechseln. Das Minuszeichen ist praktisch.
cosyconemotel