当前位置: 首页>>技术问答>>正文


在bash中,$$1是什么意思?

,

问题描述

我实际上正在玩争论,它发生了。我只是想看看如果我输入$$1将会发生什么,我做了以下事情。

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

19301的含义是什么,它是在讲什么?

Bottom-Line:BAB中$$1的含义是什么?

最佳解决方案

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

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

所以它告诉你bash是PID 1930的过程。

但是……免费技巧:

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

(相当复杂,不是吗?)

更多信息在TLDP中。

次佳解决方案

  • $$ – 当前shell的pid(不是子shell) – 请参阅What are the special dollar sign shell variables?

  • $$1 – 当前shell(不是子shell)的pid,后跟1

  • $$2 – 当前shell(不是子shell)的pid,后跟2

  • $$a – 当前shell(不是子shell)的pid,后跟a字符。

  • 等等…

请参阅echo $$1的输出。

并且您得到错误command not found,因为您正在尝试执行由数字组成的字符串,这显然不是命令。

第三种解决方案

您已将$$1连接在一起以获取当前shell的PID和1,即$$代表当前运行的shell的PID而1只是一个字符,您可以执行$$a$$@以获得与以下连接的PID字符。

第四种方案

$$它将声明1930,它是当前shell的pid。

键入$$1表示pid后跟一个,因此输出将为19301

试试$$2输出将是19302

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6947.html,未经允许,请勿转载。