我实际上是在玩争论并且它发生了。我只是想看看如果我打字$$1并且我做到了并在下面得到了一些东西会发生什么。
raja@raja-BONEFISH:~$ $$1
19301: command not found
Run Code Online (Sandbox Code Playgroud)
19301 是什么意思,它在说明什么?
底线:$$1在 bash中的含义是什么。
Rma*_*ano 27
$$ 是当前进程的PID(进程ID)。
$$1是上面的PID后跟文字字符串1。
所以它告诉你你bash是PID 1930的进程。
但是......免费技巧:
show() { eval echo \$$1; }
show PATH
/home/romano/bin:/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
(相当复杂,不是吗?)
TLDP 中的更多信息。
Rad*_*anu 13
$$- 当前外壳程序(不是子外壳程序)的 pid - 请参阅什么是特殊的美元符号外壳变量?
$$1- 当前外壳程序(不是子外壳程序)的 pid 后跟1.
$$2- 当前外壳程序(不是子外壳程序)的 pid 后跟2.
$$a- 当前外壳程序(不是子外壳程序)的 pid 后跟a字符。
等等...
见输出echo $$1。
您会收到错误消息,command not found因为您正在尝试执行由数字组成的字符串,而这显然不是命令。
job*_*bin 10
您已将$$和连接1在一起以获得当前外壳程序的 PID 和1,即$$代表当前正在运行的外壳程序的 PID 并且1只是一个字符,您可以这样做$$a,$$@以获得与以下字符连接的 PID。