Co oznacza wynik działania poniższego polecenia? (wynik jest dodatnią liczbą całkowitą)
echo $$
Co oznacza wynik działania poniższego polecenia? (wynik jest dodatnią liczbą całkowitą)
echo $$
Odpowiedzi:
$$Zmienna bash i inne powłoki zawiera identyfikator procesu powłoki.
Zobacz to pytanie dotyczące przepełnienia stosu, a to także zawiera więcej szczegółów na temat tego, co jest dokładniejsze, i podobne polecenia.
Jak wskazano w drugiej (zaakceptowanej) odpowiedzi, $ param reprezentuje bieżący identyfikator procesu (PID) bieżącej powłoki.
Echo tego parametru powinno działać w większości powłok (nie tylko w Bash):
Grzmotnąć:
$ echo $0
bash
$ echo $$
6780
Kres:
$ echo $0
sh
$ echo $$
6988
C-Shell:
% echo $shell
/bin/csh
% echo $$
7613
Ważne jest również, aby pamiętać, że polecenia z powłoki będą działały pod identyfikatorem procesu macierzystego (PPID) powłoki .
$ 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