通过一个小测试来区分循环的不同意义
while read line 是一次性将文件信息读入并赋值给变量line ,while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量
for是每次读取文件中一个以空格为分割符的字符串
话术借鉴(http://blog.itpub.net/22664653/viewspace-1175858/)
文件ip.txt如下:
192.168.50.59 80
192.168.50.60 80
192.168.50.61 80
192.168.50.62 80
192.168.50.63 80
1、for
[root@localhost ~]# for i in `cat ip.txt`;do echo $i ;done
192.168.50.59
80
192.168.50.60
80
192.168.50.61
80
192.168.50.62
80
192.168.50.63
80
2、while read line
[root@localhost ~]# cat ip.txt |while read line;do echo $line;done
192.168.50.59 80
192.168.50.60 80
192.168.50.61 80
192.168.50.62 80
192.168.50.63 80
个人总结:for以空格为区分的循环单位 while read line以行为区分循环单位