10

Я знаю, что $! хранит pid последнего (фонового) процесса, но что означает %1 ? Я часто вижу это вместе с kill и это имеет тот же эффект, что и kill $! , Может кто-нибудь дать мне подсказку? (Такие маленькие термины так трудно гуглить:-/)

2 ответа2

9

Указатель % ссылается на задания в списке заданий текущей оболочки и возвращает PID. Попробуйте help jobs .

8

То, что вы хотите, чтобы Google это man bash

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

Простое присвоение имени заданию можно использовать, чтобы вывести его на передний план:% 1 является синонимом '' fg% 1 '', выводя задание 1 из фона на передний план. Точно так же «% 1 &» возобновляет задание 1 в фоновом режиме, что эквивалентно «bg% 1».

TL; DR: %1 - это задание № 1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .