我正在为Linux阅读一个shell脚本并且遇到变量$$
:两个美元符号。基本上全线是
work_dirname=/tmp/my-work-$$
$$
是什么意思?
答案 0 :(得分:5)
$$
给出shell的进程ID。
答案 1 :(得分:4)
是脚本本身的进程ID(PID)。经常
$$
变量 在脚本中查找用于构造“唯一”临时文件名(请参阅 实施例32-6,实施例16-31和实施例15-27)。这通常是 比调用mktemp更简单。
(资料来源:http://tldp.org/LDP/abs/html/internalvariables.html#PROCCID)
答案 2 :(得分:3)
这是正在执行的脚本的进程ID。这可以用来为临时文件创建一个唯一的文件名,这就是你正在寻找的脚本可能正在做的事情。
请参阅:http://tldp.org/LDP/abs/html/internalvariables.html#PROCCID
答案 3 :(得分:1)
@KingsIndian是对的:$$
给出了shell的进程ID。
但什么是进程ID?
要明白这一点,试试这个:
$ echo $$
$ sh
$ echo $$
$ exit
$ echo $$
第一个和第三个回声打印相同的进程ID,但中间的打印出另一个进程ID。不同之处在于sh
命令挂起现有shell并打开一个新shell,这是一个新进程并拥有自己的ID。
当您希望每个shell拥有自己的文件时,使用您的示例中的语法,这不会与其他shell打开的文件冲突。这是否强大取决于文件将采取什么措施,但这是一种有时会使用的策略。
另请参阅mktemp
命令。