在Bash中,$$或$!代表什么意思?

28

这是一个相对简单的问题,但我没有找到任何信息。在bash中,$!$$ 代表什么意思?

例如:ps -p $!pstree $$


2
@sudo_O 我笑了 :-D (+1) - gniourf_gniourf
2
在终端中输入 man bash,按下 / 并开始搜索。 - livibetter
你试过了吗?关于我的问题没有任何信息。 - NGix
2
man bash /特殊参数 $ 扩展为shell进程的ID。在()子shell中,它扩展为当前shell的进程ID,而不是子shell。 ! 扩展为最近执行的后台(异步)命令的进程ID。 - Chris Seymour
3
我不明白为什么这个被关闭了。投票重新开放。 - user000001
2个回答

50

实际上,这些变量是从Bourne shell继承而来的。

$$表示当前PID。

$!是你的shell在后台运行的最后一个程序的PID(例如:myprog &

以下是一份shell变量列表:


是的,我明白了。所以它等于 bash 终端的 PID? - NGix
如果你在终端提示符下,是的。如果你正在运行一个shell脚本,那么你可以使用$PPID来获取你的终端shell的PID。这里有另一个链接:http://tldp.org/LDP/abs/html/internalvariables.html - paulsm4
在子shell中,“$$”不是它的PID,即使它也是当前的PID。 - jarno

9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接