Что `+` и `-` означают при выводе фоновых заданий

Когда я запускаю кучу фоновых заданий с

for s in {1,2,3}; do command_$s &; done;

Я могу видеть их всех с jobs команда

$ jobs
[2]    running    command_1
[3]  - running    command_2
[4]  + running    command_3

Я знаю, что первый столбец является идентификатором (я могу, например, kill -9 %2 убить command_)

Но что делает +, - и отсутствие какого-либо из этих средств? Бег man jobs а также jobs -h не работает.

1 ответ

Решение

В руководстве Info для bash есть описание в главе 7.1, Основы управления заданиями:

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

В выходных данных, относящихся к заданиям (например, выходных jobs команда), текущее задание всегда помечается знаком "+", а предыдущее задание - "-".

Другие вопросы по тегам