
Когда я запускаю кучу фоновых задач с помощью
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
вИнформационное руководство для bash, описание есть в главе 7.1, Основы управления заданиями:
Номер задания n может быть обозначен как '%n'. Символы '%%' и '%+' относятся к понятию оболочки текущего задания, которое является последним остановленным заданием, пока оно было на переднем плане или запущено в фоновом режиме. Одиночный '%' (без сопутствующей спецификации задания) также относится к текущему заданию. На предыдущее задание можно сослаться с помощью '%-'. Если есть только одно задание, '%+' и '%-' могут оба использоваться для ссылки на это задание.
В выходных данных, относящихся к заданиям (например, в выходных данных команды
jobs
), текущее задание всегда помечается знаком «+», а предыдущее задание — знаком «-».