Я знаю, что $!
хранит pid последнего (фонового) процесса, но что означает %1
? Я часто вижу это вместе с kill
и это имеет тот же эффект, что и kill $!
, Может кто-нибудь дать мне подсказку? (Такие маленькие термины так трудно гуглить:-/)
2 ответа
Указатель %
ссылается на задания в списке заданий текущей оболочки и возвращает PID. Попробуйте help jobs
.
То, что вы хотите, чтобы Google это man bash
Существует несколько способов ссылки на задание в оболочке. Символ% вводит название работы. Номер задания n может упоминаться как% n. Задание также может упоминаться с использованием префикса имени, использованного для его запуска, или с использованием подстроки, которая появляется в его командной строке. Например,% ce относится к остановленной работе ce. Если префикс соответствует более чем одному заданию, bash сообщает об ошибке. С помощью %?ce, с другой стороны, относится к любому заданию, содержащему строку ce в его командной строке. Если подстрока соответствует более чем одному заданию, bash сообщает об ошибке. Символы %% и%+ относятся к понятию оболочки текущего задания, которое является последним заданием, остановленным, когда оно находилось на переднем плане или началось на заднем плане. На предыдущее задание можно ссылаться с помощью% -. Когда есть только текущее задание,% - относится к понятию оболочки текущего задания. В выводе, относящемся к заданиям (например, выводе команды заданий), текущее задание всегда помечается знаком +, а предыдущее задание -. Один% (без сопровождающей спецификации задания) также относится к текущей работе.
Простое присвоение имени заданию можно использовать, чтобы вывести его на передний план:% 1 является синонимом '' fg% 1 '', выводя задание 1 из фона на передний план. Точно так же «% 1 &» возобновляет задание 1 в фоновом режиме, что эквивалентно «bg% 1».
TL; DR: %1
- это задание № 1.