Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2372283
  • 博文数量: 473
  • 博客积分: 12252
  • 博客等级: 上将
  • 技术积分: 4307
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-12 10:02
文章分类

全部博文(473)

文章存档

2012年(8)

2011年(63)

2010年(73)

2009年(231)

2008年(98)

分类:

2009-07-13 14:28:28

下面是一个简单的例子程序,展示如何用read命令读取文件的每一行,并且把它输出到控制台。
如果没有输入文件,那么自身的shell文件将被使用
#!/bin/sh

if [ $# -gt 1  ]; then
    echo "Usage: $0 [FileName]"
    exit 1
elif [ $# -eq 1 ]; then
    MY_FILE=$1
else
    MY_FILE=$0
fi

if [ ! -f $MY_FILE ]; then
    echo "$MY_FILE does not exist!"
    exit 2
fi

MY_LINE_NO=1
while read MY_LINE
do
    printf "%5.5d: $MY_LINE\n" $MY_LINE_NO
    MY_LINE_NO=$((MY_LINE_NO+1))
done < $MY_FILE



---------------------------------------------
虽然这个东西看起来很简单,但是很多人有的时候会忘记它的正确使用
while read MY_LINE < $MY_FILE
do
printf "%5.5d: $MY_LINE\n" $MY_LINE_NO
MY_LINE_NO=$((MY_LINE_NO+1))
done
这样的结果很显然,每次都读$MY_FILE的第一行,并且是一个死循环,永远不会退出。
阅读(940) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~