在循环过程中,有时候需要在未达到循环结束条件时跳出循环,Shell使用break命令和continue命令来跳出循环。
break命令允许跳出所有循环,即终止后面所有的循环。在嵌套循环中,break命令后面可以跟一个整数,表示跳出第几层循环,例如break n
。
第一个例子break
#!/bin/bash
while :
do
echo -n "Enter a number between 1 to 5:"
read num
case $num in
1|2|3|4|5)
echo "Your number is :$num"
;;
*)
echo "Game is over!"
break
;;
esac
done
第二个例子
#!/bin/bash
for var in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
ehco "$var1 and $var2"
fi
done
done
注:第二个例子的执行结果如下:
1 and 0
1 and 5
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。在嵌套循环中,continue命令后面可以跟一个整数,表示跳出第几层循环,例如continue n
。
对break命令中的第一个例子做如下改动,则会有不一样的效果。
第一个例子continue
#!/bin/bash
while :
do
echo -n "Enter a number between 1 to 5:"
read num
case $num in
1|2|3|4|5)
echo "Your number is :$num"
;;
*)
echo "Game is over!"
continue
;;
esac
done
exit命令用于退出shell,并返回给定值。在shell脚本中可以终止当前脚本执行。执行exit可使shell以指定的状态值退出。若不设状态值参数,则shell以预设值退出。状态值0代表执行成功;其他值代表执行失败。