echo $$ 的输出

echo $$ 的输出

命令的输出echo $$在标准输出中显示一些数字,如下所示。

$ echo $$
14594

这个数字是多少?还有,

$ x=a
$ echo $x
a

在上面的例子中echo $x解析变量 x 并将其值显示x到标准输出。同样在这个命令中echo $$,第二个美元符号代表任何变量吗?

答案1

$$是 PID(进程标识符) 的当前 shell (不是子 shell)。在脚本中,在子 shell 内,$$返回脚本的 PID,而不是子 shell。请参阅内部变量

echo $$您还可以在以下命令的输出中找到终端返回的 PID :

ps ax | grep bash

答案2

$$是 bash 的内部变量之一。与$x示例中的 不同,它不“包含”值,每次访问变量时都会请求该值。

在 Bash 脚本中,它返回脚本本身的进程 ID。在脚本中,您可以调用它kill $$来发送SIGTERM到您的脚本。

在 bash shell 中,它返回当前正在运行的 bash 进程的进程 id。

在 bash 脚本中的子 shell 中,它返回脚本的进程ID,而不是子shell。

相关内容