O que% 1 em "kill% 1" significa?

12

Eu sei que $!armazena o pid do último processo (em segundo plano), mas o que %1significa? Costumo vê-lo junto kille tem o mesmo efeito que kill $!. Alguém pode me dar uma dica? (Termos tão pequenos são tão difíceis de pesquisar no Google: - /)

Zardoz
fonte
Na verdade, não ... google.com/search?q=percent+1+bash (consulte o terceiro resultado)
Hello71

Respostas:

10

O %designador refere-se aos trabalhos na lista de trabalhos do shell atual e retorna o PID. Tente help jobs.

Ignacio Vazquez-Abrams
fonte
1
O que estava me confundindo era que man killa página de manual de um executável de extermínio externo não diz nada sobre %. Mas o bash também possui um built-in killque, como um built-in, tem precedência sobre o externo kill, e help killnos diz que podemos usar as especificações de tarefas com a incorporada kill, e que poder usar as especificações de tarefas é uma das razões pelas quais é um construídas em.
Ciro Santilli # 7/13
8

O que você deseja para o Google é man bash

Existem várias maneiras de se referir a um trabalho no shell. O caractere% introduz um nome de trabalho. O número do trabalho n pode ser referido como% n. Um trabalho também pode ser referido usando um prefixo do nome usado para iniciá-lo ou uma substring que aparece em sua linha de comando. Por exemplo,% ce refere-se a um trabalho interrompido. Se um prefixo corresponder a mais de um trabalho, o bash reportará um erro. O uso de%? Ce, por outro lado, refere-se a qualquer trabalho que contenha a cadeia ce em sua linha de comando. Se a substring corresponder a mais de um trabalho, o bash reportará um erro. Os símbolos %% e% + se referem à noção do shell do trabalho atual, que é o último trabalho interrompido enquanto estava em primeiro plano ou iniciado em segundo plano. O trabalho anterior pode ser referenciado usando% -. Quando existe apenas o trabalho atual,% - refere-se à noção do shell do trabalho atual. Na saída referente aos trabalhos (por exemplo, o comando de saída dos trabalhos), o trabalho atual é sempre marcado com um + e o trabalho anterior com um -. Um único% (sem especificação de trabalho que o acompanha) também se refere ao trabalho atual.

Simplesmente nomear um trabalho pode ser usado para trazê-lo para o primeiro plano:% 1 é sinônimo de '' fg% 1 '', trazendo o trabalho 1 do segundo plano para o primeiro plano. Da mesma forma, ''% 1 '' retoma o trabalho 1 em segundo plano, equivalente a '' bg% 1 ''.

TL; DR: %1 é o número do trabalho 1.

Orbling
fonte
5
Eu pensei que a qualidade era o trabalho número 1 ...
Ignacio Vazquez-Abrams
1
@Ignacio Vazquez-Abrams: Sim, isso e as demandas da natureza.