日期:2014-05-16  浏览次数:20580 次

请教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是以回车符作为分割。