Deb*_*ger 127 bash scripting pid
我在Bash中调用了一个脚本Script.sh
,它需要知道自己的PID(即我需要在Script.sh中获取PID)
知道怎么做吗?
tva*_*son 53
用$BASHPID
或$$
有关详细信息,请参阅手册,包括两者之间的差异.
TL; DRTFM
$$
扩展到shell的进程ID.
()
子shell中,它扩展为调用shell的进程ID,而不是子shell.$BASHPID
扩展到当前Bash进程的进程ID.
()
子shell中,它扩展为子shell的进程IDPau*_*ce. 32
除了Jefromi引用的Advanced Bash Scripting Guide中给出的示例之外,这些示例还显示了管道如何创建子壳:
$ 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
Run Code Online (Sandbox Code Playgroud)
PID存储在$$
.
示例:kill -9 $$
将终止从中调用的shell实例.