for循环方式
for i in `cat /root/test`
do
echo $i
done
- for循环方式有一个问题,当文件中有空格时,会默认以空格分行。
解决方法
IFS_old=$IFS
IFS=$'\n'
for i in `cat /root/test`
do
echo $i
done
IFS=$IFS_old
while循环方式
while read -r line
do
echo $line
done < test
- While循环中read命令从标准输入中读取一行,并将内容保存到变量line中。
- -r 选项保证读入的内容是原始的内容,意味着反斜杠转义的行为不会发生。
- 输入重定向操作符< test打开并读取文件test,然后作为read命令的标准输入。
重定向管道法
cat test | while read line
do
echo $line
done