1. 程式人生 > >while循環按行讀文件的方式總結

while循環按行讀文件的方式總結

log 字節數 toolbar tin als $? 總量 read 內容

分析apache訪問日誌,把日誌每行的訪問字節數對應的字段數字相加,計算訪問總量。

#!/bin/bash
sum=0
exec < $1

while read line

do
  aa=`echo $line | awk '{print $10}'`
  expr $aa + 10 > /dev/null
  a=$?
  if [ $a -ne 0 ]; then
    continue
  fi
  sum=$(($sum+$aa))
done

echo $sum
~

這個問題主要考察while循環按行讀文件的方式。

第一種:采用exec讀取文件,然後進入循環處理

exec < $1              #$1表示的是文件名
while   read  line
do
  echo  $line
done

第二種:使用cat讀取文件內容,然後通過管道進入while循環處理。

cat  /etc/httpd/logs/access.log | while  read  line
do
  處理命令
done

第三種:

while  read   line
do
  cmd
done<file




while循環按行讀文件的方式總結