O que esses +/- significam se o trabalho do linux em segundo plano termina (iniciado com &)

43

Se eu iniciar um processo com um e comercial ( &) no final, ele será bifurcado em segundo plano. Quando termina, recebo uma saída semelhante a

[1]+  Fertig   my_script

Eu tenho uma distribuição localizada, mas isso não deve importar.

O que vejo é o ID do trabalho entre colchetes, seguido de um sinal de mais ( +).

Se eu tiver vários trabalhos iniciados em paralelo, recebo

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

Agora eu tenho um sinal de menos ( -) para o primeiro trabalho e um sinal de mais ( +) para o segundo.

Eu me pergunto, o que aqueles +/ -dizer.

Não foi possível encontrar nenhuma resposta usando os mecanismos de pesquisa da Internet.

Phil
fonte

Respostas:

57

De man bash:

Na saída referente aos trabalhos (por exemplo, a saída do jobscomando), o trabalho atual é sempre marcado com a +e o trabalho anterior com a -.

Ou seja, o trabalho sinalizado com a +é o último enviado para segundo plano.

É também aquele que será trazido para o primeiro plano quando fgfor usado sem argumentos:

$ /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

O trabalho sinalizado com a -foi enviado para o segundo plano por último. Outros trabalhos em segundo plano não são sinalizados.

jaume
fonte
O prazer é meu, estou feliz por poder ajudar.
jaume
1
Portanto, o + é útil para dizer o que os comandos fg / bg farão, mas é o + útil para qualquer coisa?
tsbertalan
@tsbertalan Concordo, não vejo utilidade para isso. Acho que é confuso, também, eu prefiro esperar o - para identificar o trabalho enviado primeiro para o segundo plano, mas talvez seja só eu ...
jaume
Às vezes vejo duas vantagens ou duas desvantagens lá. Realmente não se encaixa na definição de "último" ou "atual". Isso é bash 4.3.42.
Jan-Philip Gehrcke
8
@tsbertalan Faço Ctrl + Z e depois fg -alterno entre dois trabalhos. O sinal de menos é útil.
cozyconemotel