现在的位置: 首页 > 综合 > 正文

如何使用read命令读取文件的每一行

2013年08月15日 ⁄ 综合 ⁄ 共 954字 ⁄ 字号 评论关闭
下面是一个简单的例子程序,展示如何用read命令读取文件的每一行,并且把它输出到控制台。gMULinux联盟
如果没有输入文件,那么自身的shell文件将被使用gMULinux联盟
#!/bin/shgMULinux联盟
gMULinux联盟
if [ $# -gt 1  ]; thengMULinux联盟
    echo "Usage: $0 [FileName]"gMULinux联盟
    exit 1gMULinux联盟
elif [ $# -eq 1 ]; thengMULinux联盟
    MY_FILE=$1gMULinux联盟
elsegMULinux联盟
    MY_FILE=$0gMULinux联盟
figMULinux联盟
gMULinux联盟
if [ ! -f $MY_FILE ]; thengMULinux联盟
    echo "$MY_FILE does not exist!"gMULinux联盟
    exit 2gMULinux联盟
figMULinux联盟
gMULinux联盟
MY_LINE_NO=1gMULinux联盟
while read MY_LINEgMULinux联盟
dogMULinux联盟
    printf "%5.5d: $MY_LINE/n" $MY_LINE_NOgMULinux联盟
    MY_LINE_NO=$((MY_LINE_NO+1))gMULinux联盟
done < $MY_FILEgMULinux联盟
gMULinux联盟
gMULinux联盟
gMULinux联盟
---------------------------------------------gMULinux联盟
虽然这个东西看起来很简单,但是很多人有的时候会忘记它的正确使用gMULinux联盟
while read MY_LINE < $MY_FILE gMULinux联盟
do gMULinux联盟
printf "%5.5d: $MY_LINE/n" $MY_LINE_NO gMULinux联盟
MY_LINE_NO=$((MY_LINE_NO+1)) gMULinux联盟
done gMULinux联盟
这样的结果很显然,每次都读$MY_FILE的第一行,并且是一个死循环,永远不会退出。
gMULinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论

抱歉!评论已关闭.