请问 echo $$ 是什么意思?
大家好,请问 echo $$ 是什么意思?
在网上搜索不了,还望指教,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
大家好,请问 echo $$ 是什么意思?
在网上搜索不了,还望指教,谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
查看当前shell的PID,谢谢shell_HAT
复制代码
从教程中拷贝过来,应该足够了, 连方法都出来了.
8.4.2 Process ID Variables and Temporary Files
The only thing new about this is $$ in the filename expression. This is a special shell variable whose
value is the process ID of the current shell.
To see how $$ works, type ps and note the process ID of your shell process (ksh). Then type print "$$";
the shell will respond with that same number. Now type ksh to start a subshell, and when you get a
prompt, repeat the process. You should see a different number, probably slightly higher than the last one.
A related built-in shell variable is ! (i.e., its value is $!), which contains the process ID of the most
recently invoked background job. To see how this works, invoke any job in the background and note the
process ID printed by the shell next to [1]. Then type print "$!"; you should see the same number.
还有个方法:
cat mytest.sh
#!/usr/bin/ksh
while true
do
echo "what's $$"
echo $$
sleep 60
done
然后从新开一个终端用ps -ef 去查看这个程序会有比较好的发现,
当然你也可以后台运行上面的程序,它是个死循环程序.
我的理解: 同意楼主,变量$$存储着指当前shell的PID的值,
比如:
# echo $$
# ksh (进入一个subshell)
# echo $$
# <ctrl-d> (退出 子shell)
# echo $$
看一下3次命令的输出结果
echo 命令是shell 内置命令,不用另外启动一个子shell 来执行,所以输出的是当前shell的PID
有时会看到echo $$ 命令被放到脚本里面执行。 因为一个脚本可以被运行多次产生不同的instances, 当你需要区分它们并且需要被外部的程序或脚本所识别的时候,可以在脚本中使用该命令
开始我一直以为就是PPID,回完贴又回味了下,应该不太准确,等高人来科普吧
是不是指当前所在shell的进程号呢?
$$ 当前进程的进程号