/ / Die Zeichen "+" und "-" neben der Auftragsnummer - Befehlszeile, Bash

Die Zeichen "+" und "-" neben der Auftragsnummer - Befehlszeile, Bash

Die Bash-Manpage sagt

Bei der Ausgabe von AuftrĂ€gen (z., die Ausgabe der Jobs-Befehl) wird der aktuelle Job immer mit einem + echter Job mit einem -. Ein einzelnes% (ohne zugehörige berufsspezi‐ tion) bezieht sich auch auf den aktuellen Job.

In meiner folgenden Befehlsreihe nach ja 2> / dev / null & Ich habe erwartet, dass Job [2] der aktuelle Job ist, nicht Job [1].

Auch am Ende des Befehls ja 3> / dev / null & Ich habe erwartet, dass die Ausgabe des Befehls jobs so aussieht:

[1] Angehalten
[2] - Laufen
[3] + Laufen

Was vermisse ich ?

$ yes 1 > /dev/null
^Z
[1]+  Stopped                 yes 1 > /dev/null
$ jobs
[1]+  Stopped                 yes 1 > /dev/null
$ yes 2 > /dev/null &
[2] 3082
$ jobs
[1]+  Stopped                 yes 1 > /dev/null
[2]-  Running                 yes 2 > /dev/null &
$ yes 3 > /dev/null &
[3] 3116
$ jobs
[1]+  Stopped                 yes 1 > /dev/null
[2]   Running                 yes 2 > /dev/null &
[3]-  Running                 yes 3 > /dev/null &

Antworten:

0 fĂŒr Antwort № 1

Aus derselben Manpage:

[
] Der aktuelle Job, bei dem es sich um den letzten Job handelt, der im Vordergrund angehalten oder im Hintergrund gestartet wurde.

Es ist etwas mehrdeutig. Sie können es verstehen als:

  1. Nehmen Sie alle "Jobs angehalten, wÀhrend sie im Vordergrund oder im Hintergrund gestartet wurden" ...
  2. 
 Dann wÀhle "den letzten".

Aber es ist lieber:

  1. Nehmen Sie "der letzte Auftrag wurde angehalten, wÀhrend er im Vordergrund war".
  2. aber falls es keinen solchen Job gibt, nimm "den letzten Job, der im Hintergrund gestartet wurde".