Как сценарий Bash Linux/Unix знает свой собственный PID?

У меня есть сценарий в названном Bash Script.sh, и это должно знать свой собственный PID (т.е. Я должен получить PID в Script.sh),

Какая-либо идея, как сделать это?

126
задан Sopalajo de Arrierez 31 March 2014 в 23:45
поделиться

5 ответов

Переменная $$ содержит PID.

208
ответ дан 24 November 2019 в 00:51
поделиться

используйте $ BASHPID или $$

См. руководство для получения дополнительной информации, включая различия между ними.

TL; DRTFM

  • $$ Расширяется до идентификатора процесса оболочки.
    • В подоболочке () расширяется к идентификатору процесса вызывающей оболочки, а не подоболочке.
  • $ BASHPID заменяется на идентификатор текущего процесса Bash.
    • В подоболочке () он заменяется на идентификатор процесса подоболочки
53
ответ дан 24 November 2019 в 00:51
поделиться

В дополнение к примеру, приведенному в Advanced Bash Scripting Guide, на который ссылается Jefromi, эти примеры показывают, как pipes создают подпапки:

$ echo $$ $BASHPID | cat -
11656 31528
$ echo $$ $BASHPID
11656 11656
$ echo $$ | while read line; do echo $line $$ $BASHPID; done
11656 11656 31497
$ while read line; do echo $line $$ $BASHPID; done <<< $$
11656 11656 11656
32
ответ дан 24 November 2019 в 00:51
поделиться

Вы можете использовать переменную $$ .

2
ответ дан 24 November 2019 в 00:51
поделиться

PID хранится в $$ .

Пример: kill -9 $$ уничтожит экземпляр оболочки, из которой он вызывается.

7
ответ дан 24 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: