为啥 echo $$ 返回一个数字? [复制]
Posted
技术标签:
【中文标题】为啥 echo $$ 返回一个数字? [复制]【英文标题】:Why does echo $$ return a number? [duplicate]为什么 echo $$ 返回一个数字? [复制] 【发布时间】:2014-04-22 19:45:54 【问题描述】:为什么我这样做时会得到一个数字:
echo $$
返回
489
如果我打开一个新终端,它会返回另一个数字。它似乎与终端会话的pid有关,但为什么呢?
【问题讨论】:
另见:***.com/questions/2493642/… 和bash特殊参数:gnu.org/software/bash/manual/bashref.html#Special-Parameters 【参考方案1】:$$
表示您当前的 PID。
如Bash Reference Manual - 3.4.2 Special Parameters中所见:
$
扩展为 shell 的进程 ID。在 () 子shell中,它展开 调用 shell 的进程 ID,而不是子 shell。
你可以通过ps -ef | grep 489
进行测试,它会显示你登录的过程。
以我为例:
$ echo $$
3470
$ ps -ef | grep 3470
1000 3470 3469 0 10:59 pts/3 00:00:00 -bash <---- this process
1000 8151 3470 0 15:37 pts/3 00:00:00 ps -ef
1000 8152 3470 0 15:37 pts/3 00:00:00 grep --color=auto 3470
【讨论】:
【参考方案2】:因为它是这样定义的。 $$
是一个特殊的 shell 变量(例如 $!
、$_
、$@
、$1
,...),指的是调用的 shell 的 PID。
【讨论】:
【参考方案3】:你会在这个post找到一个很好的解释。
$$ 当前shell(不是子shell)的pid
【讨论】:
以上是关于为啥 echo $$ 返回一个数字? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
PHP为啥echo 'happy'.1+2.'345'会输出2345
为啥 NaN 大于 JavaScript 中的任何数字? [复制]