我实际上是在玩参数,然后就发生了这种情况。我只是想看看如果我输入$$1
并执行并得到以下结果,会发生什么。
raja@raja-BONEFISH:~$ $$1
19301: command not found
19301 是什么意思?它说明了什么?
底线:$$1
bash 中的 for 是什么意思。
答案1
$$
是当前进程的 PID (进程 id)。
$$1
是上面的 PID 后跟文字字符串1
。
所以它告诉你,你的bash
进程的 PID 是 1930。
但是...免费技巧:
show() { eval echo \$$1; }
show PATH
/home/romano/bin:/usr/local/bin:/bin:/usr/bin
(相当复杂,不是吗?)
更多信息局部差分协议。
答案2
$$
- 当前 shell 的 pid(不是子 shell) - 参见特殊的美元符号 shell 变量有哪些?$$1
- 当前 shell(不是子 shell)的 pid,后跟1
。$$2
- 当前 shell(不是子 shell)的 pid,后跟2
。$$a
- 当前 shell (不是子 shell) 的 pid 后跟a
字符。等等...
查看 的输出echo $$1
。
您收到错误是command not found
因为您尝试执行由数字组成的字符串,这显然不是命令。
答案3
您已将$$
和连接1
在一起以获取当前shell的PID,并且1
,即$$
代表当前正在运行的shell的PID并且1
只是一个字符,您可以执行$$a
,$$@
以获取与以下字符连接在一起的PID。
答案4
$$ 它将说明1930
哪个是进程号当前 shell 的。
当您输入时,$$1
这意味着 pid 后跟 1,因此输出将是19301
。
尝试$$2
输出将是19302