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命令输出的的结果,循环获取的内容是以空格作为分界的。