+/- после выполнения работы в фоновом режиме

21

Запустить работу в фоновом режиме

$ command &

Когда это будет сделано, терминал печатает

[n]+    command

или

[n]-    command

Так что иногда это плюс, а иногда - минус [n].

Что означает плюс / минус?

подветренный
источник

Ответы:

19

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

От man bash:

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

Пример:

$ 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
heemayl
источник
2

Я предполагаю, что вы имеете в виду, когда вы проверяете работу через $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 &

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

Klamz
источник
Ваше описание ситуации неясно, и система не предсказывает, какая работа закончится первой.
Джули Пеллетье
Я понимаю, что вы имеете в виду, я подчеркну основной момент
Klamz