¿Cómo conoce un script Bash Linux/Unix su propio PID?


Tengo un script en Bash llamado Script.sh, y necesita saber su propio PID (es decir, necesito obtener PID dentro del Script.sh )

¿Alguna idea de cómo hacer esto ?

Author: Sopalajo de Arrierez, 2010-03-22

5 answers

La variable ' $ $ ' contiene el PID.

 187
Author: Paul Tomblin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-22 15:53:45

Use $BASHPID o $$

Consulte el manual para obtener más información, incluidas las diferencias entre los dos.

 39
Author: tvanfosson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-22 16:14:13

Además del ejemplo dado en Advanced Bash Scripting Guide referenciado por Jefromi , estos ejemplos muestran cómo las tuberías crean subconchas:

$ 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
 28
Author: Dennis Williamson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-22 17:55:34

El PID se almacena en $$.

Ejemplo: kill -9 $$ eliminará la instancia de shell desde la que se llama.

 6
Author: neo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-15 21:10:42

Puede usar la variable $$.

 2
Author: Klaus Byskov Pedersen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-22 15:54:00