+/- após a conclusão de um trabalho em segundo plano

21

Executar um trabalho em segundo plano

$ command &

Quando terminar, o terminal imprime

[n]+    command

ou

[n]-    command

Às vezes, é um sinal de mais e outras vezes é um sinal de menos [n].

O que significa mais / menos?

Lee
fonte

Respostas:

19

Eles devem distinguir entre trabalho atual e trabalho anterior; o último emprego e o segundo último emprego por mais de dois empregos, com +o último e -o segundo último.

De man bash:

O trabalho anterior pode ser referenciado usando %-. Se houver apenas um trabalho, %+e %-ambos puderem ser usados ​​para se referir a esse trabalho. Na saída referente aos trabalhos (por exemplo, a saída do comando jobs), o trabalho atual é sempre marcado com a +e o trabalho anterior com a -.

Exemplo:

$ 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
heemail
fonte
2

Suponho que você esteja se referindo ao verificar trabalhos via $jobs. No entanto, como você provavelmente já sabe, ndenota o trabalho #. O [n] +indica o trabalho final que foi chamado. [n] -indica o penúltimo trabalho que é chamado.

Por exemplo:

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 &

É por isso que, neste caso, o nosso sleep 50 &é o último: [2]+e sleep 30 &é o penúltimo:[1]-

Klamz
fonte
Sua descrição da situação não é clara e o sistema não prevê qual trabalho será finalizado primeiro.
Julie Pelletier
Eu vejo o que você quer dizer, vou enfatizar o ponto principal
Klamz