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