读书人

请问shell for while 循环用来一行一行

发布时间: 2012-07-03 13:37:43 作者: rapoo

请教shell for while 循环用来一行一行读取文件内容的区别
有一文本文件如下,每行有两个字符串/空格分开。
$ cat list.txt
Gly G
Ala A
Val V
Leu L
Ile I
Phe F


for line in `cat list.txt`
do
echo $line
done
得到结果如下:

Gly
G
Ala
A
Val
V
Leu
L
Ile
I
Phe
F

============
while read line
do
echo $line
done list.txt

运行得到结果如下:

Gly G
Ala A
Val V
Leu L
Ile I
Phe F


很奇怪为什么两个结果不一样?
能有朋友给解释一下么?

[解决办法]
因为in操作符以任意空白字符作为分割, 而read line是以回车符作为分割。

读书人网 >UNIXLINUX

热点推荐