Bash

關於後台程序中 $$ 值的文件

  • October 5, 2021

是否有關於$$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 環境中執行。這將列印1inbash3in ksh

a=1; a=2 | a=3; echo $a

引用自:https://unix.stackexchange.com/questions/672012