免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4422 | 回复: 7
打印 上一主题 下一主题

[新手入门] 请问 echo $$ 是什么意思? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-05 23:43 |只看该作者 |倒序浏览
大家好,请问 echo $$ 是什么意思?
在网上搜索不了,还望指教,谢谢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2010-09-05 23:54 |只看该作者
$$ 当前进程的进程号

论坛徽章:
0
3 [报告]
发表于 2010-09-05 23:59 |只看该作者
是不是指当前所在shell的进程号呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2010-09-06 00:26 |只看该作者
开始我一直以为就是PPID,回完贴又回味了下,应该不太准确,等高人来科普吧

论坛徽章:
0
5 [报告]
发表于 2010-09-06 03:15 |只看该作者
我的理解: 同意楼主,变量$$存储着指当前shell的PID的值,

比如:
# echo $$

# ksh          (进入一个subshell)
# echo $$

# <ctrl-d>     (退出 子shell)
# echo $$

看一下3次命令的输出结果

echo 命令是shell 内置命令,不用另外启动一个子shell 来执行,所以输出的是当前shell的PID

有时会看到echo $$ 命令被放到脚本里面执行。 因为一个脚本可以被运行多次产生不同的instances, 当你需要区分它们并且需要被外部的程序或脚本所识别的时候,可以在脚本中使用该命令

论坛徽章:
0
6 [报告]
发表于 2010-09-06 09:47 |只看该作者
从教程中拷贝过来,应该足够了, 连方法都出来了.

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 去查看这个程序会有比较好的发现,
当然你也可以后台运行上面的程序,它是个死循环程序.

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2010-09-07 17:24 |只看该作者
  1. #查看上一条命令的返回值
  2. echo $?

  3. #查看当前shell的PID
  4. echo $$

  5. #查看后台运行的最后一个进程的PID
  6. echo $!

  7. #查看上一个命令的最后一个参数
  8. echo $_
复制代码

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
8 [报告]
发表于 2010-09-09 11:14 |只看该作者
查看当前shell的PID,谢谢shell_HAT
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP