+/- после выполнения задания в фоне

Понятия не имею, что случилось. Я вроде как сдался, но потом после нескольких перезагрузок он просто волшебным образом заработал.

21
31.08.2016, 02:52
2 ответа

Они должны различать текущее и предыдущее задание; последнее задание и второе последнее задание для более чем двух заданий, с + для последнего и - для второго последнего.

Из man bash :

На предыдущее задание можно ссылаться с помощью % - . Если есть только одно задание , % + и % - могут использоваться для ссылки на это задание. В выводе , относящемся к заданиям (например, выводе команды jobs), текущее задание всегда помечается знаком + , а предыдущее задание - знаком {{ 1}} - .

Пример:

$ 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
21
27.01.2020, 19:43

Полагаю, вы имеете в виду, когда проверяете вакансии через $ jobs . Однако, как вы, наверное, уже знаете, n обозначает номер задания. [n] + обозначает последнее задание, которое было вызвано. [n] - обозначает предпоследнее задание, которое было вызвано.

Например:

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 &

Вот почему в этом случае наш сон 50 & является последним: [2] + и сон 30 & вторым после последний: [1] -

3
27.01.2020, 19:43

Теги

Похожие вопросы