No script Bash, qual é o significado de “$! "?

26

Se eu estou atribuindo uma variável com

temp=$!

qual seria o seu valor?

    
por Chen A. 31.07.2013 / 10:53

2 respostas

40

$! contém o ID do processo do pipeline de segundo plano executado mais recentemente. De man bash :

Special Parameters

The shell treats several parameters specially. These parameters may only be referenced; assignment to them is not allowed.

...

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

Por exemplo:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238
    
por 31.07.2013 / 10:56
20

Da página man do Bash:

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

Portanto, $! conteria o ID do processo (PID) do último trabalho que foi colocado em segundo plano.

Exemplo

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Referências

por 31.07.2013 / 10:59