Bash
關於後台程序中 $$ 值的文件
是否有關於
$$
bash 後台程序中值的文件?
man
聲稱$$
在子shell中是主程序的PID。根據以下文件,子shell 是通過大括號創建的
(...)
,但是,它似乎cmd &
不是正式的子shell。https://tldp.org/LDP/abs/html/subshells.html
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap03.html
從標準:
命令替換、用括號分組的命令和非同步列表應在子 shell 環境中執行。
cmd &
是一個非同步列表。並且假設(為了論證)這不是
cmd &
子shell,那麼剩下的唯一東西就是主shell環境,在那裡會給主程序的PID相同;-)$$
注意:在 bash 中,來自管道的所有命令也都在子 shell 中執行。在其他一些 shell(如 ksh)中,管道中的最後一個命令在主 shell 環境中執行。這將列印
1
inbash
和3
inksh
:a=1; a=2 | a=3; echo $a