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