本版版主招募中

 
标题: 用| 或〈 这种流方式存在的问题,中间究竟发生了什么
快乐小猪
LU小天使
Rank: 3Rank: 3


UID 1838
精华 4
积分 303
帖子 582
活跃指数 17
LU金币 2071 个
LU金条 0 个
阅读权限 40
注册 2003-11-6
来自 杭州
 
发表于 2006-8-9 10:10  资料  个人空间  短消息  加为好友  添加 快乐小猪 为MSN好友 通过MSN和 快乐小猪 交谈
用| 或〈 这种流方式存在的问题,中间究竟发生了什么

三个对比脚本脚本: 只有最后个for循环才是正确的,为什么呢?请高手指教一二.

用| 或〈 这种流方式存在的问题,中间究竟发生了什么,为什么两个while循环都无法往外传递最后的$sum
==============================
#!/bin/sh
sum=0
vmstat 5 10 |awk '{print $22}' |tr -d 'id' >vmstat.log
cat vmstat.log |while read id
#for id in `cat vmstat.log`
do
        if [ ! "$id" = "" ];then
                sum=`expr $sum + $id`
        else
        return
        fi
echo $id
done  #<vmstat.log
echo "sum="$sum
==============================
#!/bin/sh
sum=0
vmstat 5 10 |awk '{print $22}' |tr -d 'id' >vmstat.log
while read id
#for id in `cat vmstat.log`
do
        if [ ! "$id" = "" ];then
                sum=`expr $sum + $id`
        else
        return
        fi
echo $id
done  <vmstat.log
echo "sum="$sum
================================
#!/bin/sh            
sum=0
vmstat 5 10 |awk '{print $22}' |tr -d 'id' >vmstat.log
#cat vmstat.log |while read id
for id in `cat vmstat.log`
do
        if [ ! "$id" = "" ];then
                sum=`expr $sum + $id`
        else
        return
        fi
echo $id
done  #<vmstat.log
echo "sum="$sum
==================================





[imghttp://www.loveunix.net/attachments/zrTDMP7_BuADHiX3QP8v.jpg[/img]
顶部
aicoa
LU大天使
Rank: 6Rank: 6
嘿嘿。。。


LU爱心使者  
UID 1054
精华 3
积分 1549
帖子 2876
活跃指数 27
LU金币 10095 个
LU金条 211700 个
阅读权限 120
注册 2003-10-27
 
发表于 2006-8-11 15:27  资料  个人空间  短消息  加为好友  添加 aicoa 为MSN好友 通过MSN和 aicoa 交谈
第二个跟第三个应该是可以的,第一个是有问题

因为"cat vmstat.log |while read id"这个形式只把vmstat.log的内容传给了"while read id"这个句子,而不是while-do-done的循环,相当于成了这样

"while read id < vmstat.log"



btw,这个是为了统计cpu空闲的和吗?好象没有意义哎





Waiting for the one who's waiting for me!
┌────────────────┐
│▉1%
└────────────────┘
愛情正在下載中--〉DownLoading。。。。。
顶部
炸鸡
超级版主
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
传说中的大色狼


LU爱心使者  
UID 134
精华 32
积分 11274
帖子 20932
活跃指数 725
LU金币 15487 个
LU金条 16 个
阅读权限 251
注册 2003-9-26
来自 鸡窝
 
发表于 2006-8-26 10:25  资料  个人空间  主页 短消息  加为好友 
第二个肯定不行,光while read id这句是没意义的。id里面的值是什么?

顶部
beginner-bj
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


UID 9471
精华 16
积分 1500
帖子 2559
活跃指数 209
LU金币 4845 个
LU金条 0 个
阅读权限 210
注册 2004-1-16
 
发表于 2006-9-7 19:49  资料  个人空间  短消息  加为好友 
问题出在vmstat.log





我的博客:http://blog.chinaunix.net/index.php?blogId=739欢迎访问,并请多多批评指正。
顶部
 



当前时区 GMT+8, 现在时间是 2008-11-23 18:40
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.087472 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver