Was bedeutet "$$" in der Shell?

Antworten:

14

Die $$Variable in bash und anderen Shells enthält die Prozess-ID der Shell.

Sehen Sie sich diese Stapelüberlauffrage an, und diese enthält auch detailliertere Informationen zu ähnlichen Details und ähnlichen Befehlen.

Dennis Kaarsemaker
quelle
+1. Dokumentiert im Bash-Handbuch
Glenn Jackman
1

Wie in der anderen (akzeptierten) Antwort angegeben, repräsentiert der Parameter $ die aktuelle Prozess-ID (PID) der aktuellen Shell.

Das Echo dieses Parameters sollte in den meisten Shells funktionieren (nicht nur in Bash):

Bash:

$ echo $0
bash
$ echo $$
6780

Bourne:

$ echo $0
sh
$ echo $$
6988

C-Shell:

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

Es ist auch wichtig zu beachten, dass Befehle aus der Shell unter der übergeordneten Prozess-ID (PPID) der Shell ausgeführt werden .

$ 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
quelle