Это идентификатор процесса самого bash.
Вы можете использовать его для отслеживания вашего процесса в течение всего его жизненного цикла - используйте ps -p
, чтобы увидеть, работает ли он еще, отправьте ему сигнал с помощью kill
(например, чтобы приостановить процесс), измени приоритет с renice
и т. д.
Идентификаторы процесса часто записываются в файлы журналов, особенно когда одновременно запускается несколько экземпляров сценария, чтобы помочь отслеживать производительность или диагностировать проблемы.
Вот документация по bash с указанием специальных параметров.
BASHPID
, упомянутый ghostdog74, был добавлен в версии 4.0. Вот пример из Расширенного руководства по написанию сценариев от Менделя Купера, в котором показана разница между $$
и $BASHPID
:
#!/bin/bash4
echo "\$\$ outside of subshell = $$" # 9602
echo "\$BASH_SUBSHELL outside of subshell = $BASH_SUBSHELL" # 0
echo "\$BASHPID outside of subshell = $BASHPID" # 9602
echo
( echo "\$\$ inside of subshell = $$" # 9602
echo "\$BASH_SUBSHELL inside of subshell = $BASH_SUBSHELL" # 1
echo "\$BASHPID inside of subshell = $BASHPID" ) # 9603
# Note that $$ returns PID of parent process.