Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4212296
  • 博文数量: 291
  • 博客积分: 8003
  • 博客等级: 大校
  • 技术积分: 4275
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-30 18:28
文章分类

全部博文(291)

文章存档

2017年(1)

2013年(47)

2012年(115)

2011年(121)

2010年(7)

分类: LINUX

2011-05-21 18:35:59

如何压缩程序占用内存的方法里我为了测试程序的内存占用大小写了一个shell脚本
  1. $1 &
  2. echo "$1 pid:$!"
  3. sleep 3
  4. pmap $!|grep total|awk -v pid="$!" '{print "pid",pid," memory:",$2}'
里面需要用到linux shell的特殊变量$!,网上都是说$! 返回的是 上一个命令的PID。
但是我实际测试得出,这个说法一般不对,一般对
对于前台命令不对:
  1. [root@bogon ~]# wc -l a.txt
  2. 2162 a.txt
  3. [root@bogon ~]# echo $!
  4. [root@bogon ~]#
但是对于后台命令是对的:
  1. [root@bogon ~]# wc -l a.txt &
  2. [1] 9155
  3. 2162 a.txt
  4. [root@bogon ~]# echo $!
  5. 9155
  6. [1]+ Done wc -l a.txt
而且,之后若是执行的命令不是后台命令的话,$!里的值都不会改变,直到下一个后台命令执行为止
  1. [root@bogon ~]# wc -l a.txt
  2. 2162 a.txt
  3. [root@bogon ~]# echo $!
  4. 9155
  5. [root@bogon ~]# wc -l a.txt &
  6. [1] 9198
  7. [root@bogon ~]# 2162 a.txt
  8. [1]+ Done wc -l a.txt
  9. [root@bogon ~]# echo $!
  10. 9198
结论:$!保存的是最后一个后台执行命令的pid,第一次登录服务器时,$!为空
end

阅读(3291) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~