shell语言中while循环的break与continue

times_tried=0
while [ $times_tried -le 50 ]
do
echo "times_tried=${times_tried}" >> /0
[ "$times_tried" == 25 ] && echo "试一试!" >> /0 && break
times_tried=$((times_tried+1))
done
echo "结束了!" >> /0

执行结果:

times_tried=25
试一试!
结束了!

到了times_tried=25就打断循环,执行之后的语句。如果要直接终止脚本,则使用exit。

times_tried=0
while [ $times_tried -le 50 ]
do
echo "times_tried=${times_tried}" >> /0
[ "$times_tried" == 25 ] && echo "继续!" >> /0 && continue
times_tried=$((times_tried+1))
done
echo "结束了!" >> /0

执行结果:

times_tried=25
继续!
times_tried=25
继续!
times_tried=25
继续!
times_tried=25
继续!

因为继续当前times_tried=25这个循环,continue后面的times_tried=$((times_tried+1)) 语句不会再执行,绝对没有结束那一天。

结论是:
break :退出循环体,继续执行循环体外后面的语句
exit :退出整个脚本进程
continue:“继续”循环当前循环次数continue之前的命令,后面的命令作废。因此不要将结束判断放在continue之后。
上面脚本可以改成:

times_tried=0
while [ $times_tried -le 50 ]
do
echo "times_tried=${times_tried}" >> /0
times_tried=$((times_tried+1))
[ "$times_tried" == 25 ] && echo "继续!" >> /0 && continue
done
echo "结束了!" >> /0

就不会出现问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值