三种方法:

1、

while read line

do

done<filename


2、

for line in 'cat filename'

do

done


3、

cat filename | while read line

do

done


例:

从math_file文件中读取数据,输出最大值、最小值、平均值

1.

wKioL1diFxKx0eN3AAB3cs5dRes407.png

结果:

wKioL1diGGOj40hCAAAQSrkwMGo891.png


2.

wKioL1diFxOzAAi3AABsy2wW6jg773.png

结果:

wKioL1diGHSC0sn5AAAQSrkwMGo108.png

和第一种结果相同,但略有差异,for line in `cat filename` 不需要添加处理空行的代码


3.

wKiom1diFf-iOie8AAB0uqVLnAY615.png

结果:

wKioL1diGITwpj2vAAAh6qnGVdE241.png

结果报错了,原因是cat math_file 把内容通过管道给了line,执行管道这条命令会fork出一个子进程,我们只是在子进程中改变了变量的值,子进程退出后,echo在父进程中执行,父进程中变量值并没有改变,因此值还为最初定义的0



《完》