Что означает% 1 в «kill% 1»?

12

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

Zardoz
источник
Не совсем ... google.com/search?q=percent+1+bash (см. Третий результат)
Hello71,

Ответы:

10

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

Игнасио Васкес-Абрамс
источник
1
Что меня смутило, так это то, что он man killпредоставляет справочную страницу для внешнего исполняемого файла kill, о котором ничего не говорится %. Но у bash также есть встроенный модуль, killкоторый как встроенный имеет приоритет над внешним kill, и help killговорит нам, что мы можем использовать спецификации заданий со встроенным kill, и что возможность использовать спецификации заданий является одной из причин, почему встроенный.
Сиро Сантилли 冠状 病毒 审查 六四 事件 法轮功
8

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

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

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

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

Orbling
источник
5
Я думал, что качество было работой номер 1 ...
Игнасио Васкес-Абрамс
1
@Ignacio Васкес-Абрамс: Да, это и требования природы.