Что означает «$$» в оболочке?


Ответы:


14

$$Переменная в ударе и других оболочек содержит идентификатор процесса оболочки.

Посмотрите на этот вопрос переполнения стека, и этот также имеет более подробную информацию о том, что это более точно, и команды, похожие на него.


+1. Документировано в руководстве по bash
Гленн Джекман

1

Как указано в другом (принятом) ответе, $ param представляет идентификатор текущего процесса (PID) текущей оболочки.

Повторение этого параметра должно работать в большинстве оболочек (не только в Bash):

Bash:

$ echo $0
bash
$ echo $$
6780

Bourne:

$ echo $0
sh
$ echo $$
6988

C-Shell:

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

Также важно отметить, что команды внутри оболочки будут выполняться под идентификатором родительского процесса (PPID) оболочки .

$ 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.