Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33343
  • 博文数量: 7
  • 博客积分: 251
  • 博客等级: 二等列兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:03
文章分类
文章存档

2011年(7)

我的朋友
最近访客

分类: LINUX

2011-03-10 21:21:35

比如文件tes的内容为:

linux

shell

read a file

bi yun zhang

以下是按行读取该文件中的内容的shell脚本read.sh

#!/bin/sh
i=0
cat tes|while read line
    do
        echo $line
         i=`expr $i + 1`
        echo $i
    done
echo "--------------"

while read line; do
    echo $line
done < tes

echo "--------------"

for line in `cat tes`; do
    echo $line
done

echo "--------------"

for line in $(cat tes); do
    echo $line
done

 

运行该脚本打印出的信息如下:

linux
1
shell
2
read a file
3
bi yun zhang
4
--------------
linux
shell
read a file
bi yun zhang
--------------
linux
shell
read
a
file
bi
yun
zhang
--------------
linux
shell
read
a
file
bi
yun
zhang

从打印的结果(红色标识的内容)可以看到区别:用后面两种方法按行读取文件内容时,是以空格作为分界符的,而前两种方法则是真正以行读取内容的。

后两种方法实际上是以cat命令把文件中的内容读取出来,然后用for循环获取cat命令输出的的结果,循环获取的内容是以空格作为分界的。

阅读(2827) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~