🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# **一、三种方法** ## **1.exec读取文件** ```shell exec <file sum=0 while read line do cmd done ``` ## **2. cat读取文件** ```shell cat file|while read line do cmd done ``` * 推荐用途: 通过awk等三剑客获取文件中的数据后,可以使用这种方法用管道抛给while按行读取 ## **3. while循环最后加重定向** ``` while read line do cmd done<file ``` * 推荐用途: 直接按行读取文件中的内容时,推荐用此方法 # **二、案例** 读取web日志文件,把日志文件中每行中的访问字节数相加,统计访问总量 * `cat /server/scripts/c9.sh` ```shell #!/bin/bash sum=0 exec <$1 while read line do size=`echo $line|awk '{print $10}'` expr $size + 1 &>/dev/null if [ $? -ne 0 ];then continue fi ((sum=sum+$size)) done echo "${1}:total:${sum}bytes =`echo $((${sum}/1024))`KB" ```