Как узнать идентификатор процесса родительского процесса?

У меня есть сценарий с циклом

while read host do ./script & done 

Я хочу знать идентификатор процесса текущего процесса, который запускает ./script в фоновом режиме и использует его в скрипте.

Предполагая оболочку POSIX (например, bash ), $$ является ПИД текущей оболочки, а $PPID является PID родителя. Вы можете передать $$ скрипту или проверить значение $PPID в скрипте.

Идентификатор процесса текущей оболочки находится в специальной переменной $$ .

Вы можете передать это в разветвленный (фоновой) процесс:

 ./script $$ & 

В «скрипте» это будет первый аргумент, поэтому:

 parent_pid=$1 

Здесь приводится сводка специальных переменных bash .