我曾经认为在bash终端中 /proc/self
和 /proc/$$
是相同的,但现在我发现它们是不同的。
我知道$$
表示当前进程的pid,而/proc/self
是当前正在运行的进程,应该是bash终端。为什么它们不同呢?
root@VM-73-203-debian:~# echo $$
24415
root@VM-73-203-debian:~# ls -l /proc/self
lrwxrwxrwx 1 root root 0 Nov 22 2018 /proc/self -> 24465
root@VM-73-203-debian:~# ls -l /proc/$$
total 0
dr-xr-xr-x 2 root root 0 May 29 16:23 attr
...
$
,前面的$
在扩展时给出值,我相信你知道。 - cdarke$
不是特殊变量,而是一种 _特殊参数_,所以$$
更像是$1
而不是$PID
。;-) - rodrigox
这样的变量被称为命名参数,而1
等则被称为未命名参数,而不是今天所说的位置参数。即使在现代的man bash
中也是如此:“参数是存储值的实体”。然而,现在很少有人再使用参数这个词作为一般术语,更喜欢使用变量。 - cdarke