为什么子shell的PID和PPID与主shell相同?

问题描述 投票:0回答:1

old.sh
文件包含以下代码:

#!/bin/bash
echo $$
echo $PPID
(
        echo $$
        echo $PPID
)

bash /tmp/new.sh

/tmp/new.sh
文件包含以下内容:

#!/bin/bash
echo $$
echo $PPID

当我运行

old.sh
文件时,结果如下:

632
143
第632章 143 #子shell的PPID
第634章 第632章
我预计子 shell 的 PPID 将等于主 shell 的 PID。但是,子shell和主shell的PID和PPID是相同的。

请解释原因。

来自
linux bash shell
1个回答
0
投票

$ 扩展为所调用 shell 的十进制进程 ID。在子 shell 中(请参阅 Shell 执行环境),“$”应扩展为与当前 shell 相同的值。

指定这样做。

如果你想要真实的pid,请使用

$BASHPID

	

© www.soinside.com 2019 - 2024. All rights reserved.