LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 992|回复: 4

帮忙看看这段SHELL

[复制链接]
发表于 2007-3-5 10:25:11 | 显示全部楼层 |阅读模式
1 #!/bin/bash
  2 ps -aux > /tmp/ps.txt
  3 a=2
  4 lin=`cat /tmp/ps.txt|wc -l`
  5 while [ "$a" -le "$lin" ];do
  6 cpu=`sed -n ${a}p /tmp/ps.txt|awk '{print $3}'`
  7 if [ "$cpu" -ge 3 ];then
  8 echo $(sed -n ${a}p /tmp/ps.txt)
  9 fi
10 let a="$a + 1"
11 done
我想只显示PS -AUX后,CPU使用大于3的进程.
发表于 2007-3-5 10:31:17 | 显示全部楼层
ps aux|awk '$3>2{print}'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-5 10:34:14 | 显示全部楼层
晕.....那么简单....
谢谢!
不过我还是希望知道,我上面是错到那里了.
从文件里面提出来的数值,不能这样比较大小吗?
回复 支持 反对

使用道具 举报

发表于 2007-3-5 10:55:04 | 显示全部楼层
#!/bin/bash
ps aux > /tmp/ps.txt  #这里是否多了-
a=2
lin=`cat /tmp/ps.txt|wc -l`
while [ "$a" -le "$lin" ];do
    cpu=`sed -n ${a}p /tmp/ps.txt|awk '{print $3}'`
    if [ ${cpu%.*} -ge 3 ];then #这个只能对整数进行操作,因此修改为${cpu%.*}
        echo $(sed -n ${a}p /tmp/ps.txt)
    fi
    let a="$a + 1" #前面的a不应该有$
done
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-5 11:26:45 | 显示全部楼层
非常感谢两位,问题解决了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表