一、首先介绍一下for循环和while循环读取文件每一行的语法
# for的语法
for line in $(cat a.txt)
do
echo $line
done
# while的语法
while read line
do
echo $line
done < a.txt
二、两者的区别
有个文件a.txt如下
root@zsh-virtual-machine:~/shell# cat a.txt
aaa
bbb
ccc ddd
eee fff ggg
注意上面文件中ccc和ddd有个空格,eee、fff和ggg中间各有一个空格
1.使用for循环
aaa
bbb
ccc
ddd
eee
fff
ggg
如果文件中数据并非都在一行排列,且之间空格不固定,选择for
2.使用while循环
aaa
bbb
ccc ddd
eee fff ggg
输出的结果和原文一样,文件按照行读取,且忽略多个空格变为一个空格,选择while