Sé que $!
almacena el pid del último proceso (de fondo), pero ¿qué %1
significa? A menudo lo veo junto con kill
y tiene el mismo efecto que kill $!
. Alguien me puede dar una pista? (Estos pequeños términos son muy difíciles de google: - /)
Sé que $!
almacena el pid del último proceso (de fondo), pero ¿qué %1
significa? A menudo lo veo junto con kill
y tiene el mismo efecto que kill $!
. Alguien me puede dar una pista? (Estos pequeños términos son muy difíciles de google: - /)
Respuestas:
El %
designador se refiere a los trabajos en la lista de trabajos del shell actual y devuelve el PID. Tratar help jobs
.
man kill
le da a la página de manual un ejecutable externo de kill que no dice nada al respecto %
. Pero bash también tiene una función incorporada kill
que, como función incorporada, tiene precedencia sobre la externa kill
, y help kill
nos dice que podemos usar Jobspecs con la función incorporada kill
, y que poder usar Jobspecs es una de las razones por las que es un incorporado.
Lo que quieres para Google es man bash
Hay varias formas de referirse a un trabajo en el shell. El personaje% introduce un nombre de trabajo. El número de trabajo n puede denominarse% n. También se puede hacer referencia a un trabajo utilizando un prefijo del nombre utilizado para iniciarlo o una subcadena que aparece en su línea de comando. Por ejemplo,% ce se refiere a un trabajo ce detenido. Si un prefijo coincide con más de un trabajo, bash informa un error. Usar%? Ce, por otro lado, se refiere a cualquier trabajo que contenga la cadena ce en su línea de comando. Si la subcadena coincide con más de un trabajo, bash informa un error. Los símbolos %% y% + se refieren a la noción de shell del trabajo actual, que es el último trabajo detenido mientras estaba en primer plano o comenzó en segundo plano. Se puede hacer referencia al trabajo anterior utilizando% -. Cuando solo existe el trabajo actual,% - se refiere a la noción de shell del trabajo actual. En la salida correspondiente a trabajos (p. Ej., La salida del comando de trabajos), el trabajo actual siempre se marca con un +, y el trabajo anterior con un -. Un solo% (sin especificación de trabajo acompañante) también se refiere al trabajo actual.
Simplemente nombrar un trabajo puede usarse para ponerlo en primer plano:% 1 es un sinónimo de '' fg% 1 '', que lleva el trabajo 1 del fondo al primer plano. Del mismo modo, ''% 1 & '' reanuda el trabajo 1 en segundo plano, equivalente a '' bg% 1 ''.
TL; DR: %1
es el trabajo número 1.