while read语句中exit为什么是退出循环,而不退出脚本

#/bin/bash
cat all.txt|while read line
do
echo $line
exit 0
done
echo aaaaaaaaaaaaaaaa

执行脚本之后,输出结果:
test
aaaaaaaaaaaaaaaa

这里执行完read第一行之后,使用exit 0,退出的是循环,而不是脚本。如果我要退出脚本怎么处理

#!/bin/bash
while read line
do
if [ "$line" == "do" ];then
exit 2
fi
echo $line
done<<<"$(cat 1)"
echo aaa

<<<是bash的扩展,叫做here-string
加上双引号就能一次读一行结果

发表评论

电子邮件地址不会被公开。 必填项已用*标注