Что `+` и `-` означают при выводе фоновых заданий
Когда я запускаю кучу фоновых заданий с
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
команда), текущее задание всегда помечается знаком "+", а предыдущее задание - "-".