¿Qué significa "$$" en el shell?

Respuestas:

14

La $$variable en bash y otros shells contiene la identificación del proceso del shell.

Vea esta pregunta de desbordamiento de pila y esta también tiene más detalles sobre lo que es más preciso y comandos similares.

Dennis Kaarsemaker
fuente
+1. Documentado en el manual de bash
glenn jackman
1

Como indicó la otra respuesta (aceptada), $ param representa la identificación del proceso actual (PID) del shell actual.

Hacer eco de este parámetro debería funcionar en la mayoría de los shells (no solo Bash):

Golpetazo:

$ echo $0
bash
$ echo $$
6780

Bourne:

$ echo $0
sh
$ echo $$
6988

C-Shell:

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

También es importante tener en cuenta que los comandos desde el shell se ejecutarán bajo el ID de proceso primario (PPID) del 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
fuente