bash中的$$ 1是什么意思?


27

我实际上是在争论和发生。我只是想看看如果我输入$$1并输入以下内容会发生什么。

raja@raja-BONEFISH:~$ $$1
19301: command not found

19301是什么意思,它在说什么吗?

底线:$$1bash的含义是什么。


1
哎哟!!这么容易的事情。我还有很多事情要学习。所有答案都是超级。+1。
rɑːdʒɑ

Answers:


27

$$ 是当前进程的PID(进程ID)。

$$1是上面的PID,后跟文字字符串1

因此,它告诉您您bash是PID 1930的过程。

但是...免费技巧:

show() { eval echo \$$1; }
show PATH
/home/romano/bin:/usr/local/bin:/bin:/usr/bin

(非常令人费解,不是吗?)

有关TLDP的更多信息。



1
一会儿,我读到TLDP为“太久没撒尿”。
Luis Alvarado 2014年

13
  • $$-当前外壳的pid(不是子外壳)-请参阅什么是特殊的美元符号外壳变量?

  • $$1-当前外壳程序(非子外壳程序)的pid,后跟1

  • $$2-当前外壳程序(非子外壳程序)的pid,后跟2

  • $$a-当前外壳(不是子外壳)的pid,后跟a字符。

  • 等等...

请参阅的输出echo $$1

并且command not found由于尝试执行由数字组成的字符串(显然不是命令)而收到错误。


10

您已经连接在一起$$1一起获得当前shell的PID 1,即$$代表当前正在运行的shell的PID,1它只是一个字符,您可以这样做$$a$$@以获取由以下字符连接的PID。


6

$$将说明1930这是PID当前外壳。

当您键入时$$1,意味着pid后跟一个,因此输出将是19301

尝试$$2输出将是19302

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.