En las secuencias de comandos Bash, ¿cuál es el significado de "$! "?

Respuestas:

57

$!contiene el ID de proceso de la canalización de fondo ejecutada más recientemente. De man bash:

Parámetros especiales

El shell trata varios parámetros especialmente. Estos parámetros solo pueden ser referenciados; la asignación a ellos no está permitida.

...

! - Se expande a la ID de proceso del comando de fondo (asíncrono) ejecutado más recientemente.

Por ejemplo:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238
Chris Down
fuente
Tengo la sensación de que usted y slm están diciendo lo mismo :)
msw
22

De la página del manual de Bash:

   !   Expands to the process ID of the most recently executed 
       background (asynchronous) command.

Por $!lo tanto , contendría el ID de proceso (PID) del último trabajo que se realizó en segundo plano.

Ejemplo

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Referencias

slm
fuente
1
Tengo la sensación de que usted y Chris Down están diciendo lo mismo :)
un CVn
2
Parece que hay un eco en esta Pregunta 8-).
slm
¡Los mismos votos también cuentan!
un CVn
@ MichaelKjörling - hey grandes mentes piensan igual 8-).
slm