O que significa "$$" no shell?

Respostas:

14

A $$variável bash e outros shells contém a identificação do processo do shell.

Veja esta questão de estouro de pilha e esta também tem mais detalhes sobre o que é mais preciso e comandos semelhantes a ela.

Dennis Kaarsemaker
fonte
+1. Documentado no manual
glenn jackman
1

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

O eco desse parâmetro deve funcionar na maioria dos shells (não apenas no Bash):

Bater:

$ echo $0
bash
$ echo $$
6780

Bourne:

$ echo $0
sh
$ echo $$
6988

C-Shell:

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

É importante observar também que os comandos de dentro do shell serão executados sob o ID do processo pai (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
Aaron
fonte