Chinaunix
标题:
shell whilhe循环请教
[打印本页]
作者:
236848253
时间:
2016-05-06 12:00
标题:
shell whilhe循环请教
小弟写了一个while循环:
cat $domain|while read line
do
cd /var/log/apache/
# echo $line >$bandwidth
cat $line$time|$grep|awk '{print $9,$10}'|sort|uniq -c|sort -nr|awk '{a+=$1*$3}END{print a/1024/1024*8}' >> $bandwidth
done
小弟想while循环里输$line 然后在第二行追加 cat一行的结果以此循环,但是为什么加入echo以后,while就处理一次就不处理了呢?
想要的结果是:
xx.xxx.com
cat一行的结果
xx.xxx.net
cat的结果。
现在问题:
xx.xxx.com
cat一行的结果
执行一次循环就结束了
作者:
q1208c
时间:
2016-05-06 12:46
你的原始数据呢?
作者:
cao627
时间:
2016-05-06 12:50
echo $line >$bandwidth
cat xxxxxxxx>> $bandwidth
你每次循环中执行如上两句,第一句清空文件后添加行,第二句追加行。如此循环下去最终文件中自然只有两行,于是你以为循环只进行了一次。
作者:
236848253
时间:
2016-05-06 13:40
不对呀,我吧echo 放在cat的下面,就不会有这问题,但是这样不好看
回复
3#
cao627
作者:
cao627
时间:
2016-05-06 14:40
cat $domain|while read line
do
cd /var/log/apache/
echo $line >$bandwidth
cat $line$time|$grep|awk '{print $9,$10}'|sort|uniq -c|sort -nr|awk '{a+=$1*$3}END{print a/1024/1024*8}' >> $bandwidth
echo $((n++))
done
先看看循环到底执行几次再说
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2