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

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

Когда я запускаю кучу фоновых задач с помощью

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), текущее задание всегда помечается знаком «+», а предыдущее задание — знаком «-».

Связанный контент