O que significa “$$” no shell?

11

O que significa a saída do comando abaixo? (resultado é um inteiro positivo)

echo $$
    
por Adrian Serafin 20.01.2013 / 19:14

2 respostas

15

A variável $$ no bash e outras shells contém o id do processo do shell.

Veja esta pergunta de estouro de pilha e este também tem mais detalhes sobre o que é mais precisamente e comandos semelhantes a ele.

    
por Dennis Kaarsemaker 20.01.2013 / 19:18
1

Como a outra resposta (aceita) indicou, o $ param representa o ID do processo atual (PID) do shell atual.

Ecoando este param deve funcionar na maioria dos shells (não apenas no Bash):

Bash:

$ echo $0
bash
$ echo $$
6780

Bourne:

$ echo $0
sh
$ echo $$
6988

C-Shell:

% echo $shell
/bin/csh
% echo $$
7613

É importante notar também que os comandos de dentro do shell serão executados sob o parent process id (PPID) do shell.

$ echo $$
6780
$ ps -ef | grep 6780
aploetz   6780  6770  0 11:15 pts/2    00:00:00 bash
aploetz   8572  6780  0 11:34 pts/2    00:00:00 ps -ef
aploetz   8573  6780  0 11:34 pts/2    00:00:00 grep --color=auto 6780
    
por Aaron 21.06.2014 / 18:37