您的位置:首页 > 其它

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

2008-02-13 17:48 176 查看
下面是一个简单的例子程序,展示如何用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论坛讨论
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: