shell中的break和exit的区别
5个回答
2017-08-04
展开全部
先单独看break的例子:
#!/bin/bash
count=0
while [ $count -lt 5 ]
do
if [ ! -s /root/test.sh ];then
echo "test.sh doesn't exist!"
else
echo "test.sh exist!"
break
fi
sleep 3
if [ ! -s /root/kevin.sh ];then
echo "kevin.sh doesn't exist!"
else
echo "kevin.sh exist!"
break
fi
count=`expr $count + 1`
done
这里break, 即跳出while循环, 一旦执行了break, 则不继续检查循环条件,而是直接跳出循环并接着往下执行剩余的脚本内容
另外一个例子比较break和exit:
#!/bin/bash
count=0
i=0
while [ $count -lt 5 ]
do
if [ ! -s /root/test.sh ];then
echo "test.sh doesn't exist!"
else
echo "test.sh exist!"
fi
sleep 3
if [ ! -s /root/kevin.sh ];then
echo "kevin.sh doesn't exist!"
else
echo "kevin.sh exist!"
exit 2 //如果执行到这里的exit 2, 那么脚本就执行退出,不执行下面的sleep 2了。
break //如果没有上面的exit 2, 而是break 则脚本执行到这里会退出该while循环并且继续执行下面的sleep 2 注意这里的区别。
fi
count=`expr $count + 1`
done
while [ $i -lt 3 ]
do
sleep 2
i=`expr $i + 1`
done
#!/bin/bash
count=0
while [ $count -lt 5 ]
do
if [ ! -s /root/test.sh ];then
echo "test.sh doesn't exist!"
else
echo "test.sh exist!"
break
fi
sleep 3
if [ ! -s /root/kevin.sh ];then
echo "kevin.sh doesn't exist!"
else
echo "kevin.sh exist!"
break
fi
count=`expr $count + 1`
done
这里break, 即跳出while循环, 一旦执行了break, 则不继续检查循环条件,而是直接跳出循环并接着往下执行剩余的脚本内容
另外一个例子比较break和exit:
#!/bin/bash
count=0
i=0
while [ $count -lt 5 ]
do
if [ ! -s /root/test.sh ];then
echo "test.sh doesn't exist!"
else
echo "test.sh exist!"
fi
sleep 3
if [ ! -s /root/kevin.sh ];then
echo "kevin.sh doesn't exist!"
else
echo "kevin.sh exist!"
exit 2 //如果执行到这里的exit 2, 那么脚本就执行退出,不执行下面的sleep 2了。
break //如果没有上面的exit 2, 而是break 则脚本执行到这里会退出该while循环并且继续执行下面的sleep 2 注意这里的区别。
fi
count=`expr $count + 1`
done
while [ $i -lt 3 ]
do
sleep 2
i=`expr $i + 1`
done
展开全部
在 UNIX/Linux 系统的 SHELL 编程中,break 只是退出一个循环体而已;而 exit 是退出整个 shell 程序到命令提示符下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-04
展开全部
break:
结束并退出循环
exit:
退出脚本,
常带一个整数给系统,如 exit 0
结束并退出循环
exit:
退出脚本,
常带一个整数给系统,如 exit 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就目前比较广泛使用的的语言(包括shell)来说,
break广泛指的是跳出上一级循环(for ,while等循环),直接进行下面的语句
exit指的是当前脚本的退出,之后的语句都将得不到执行。
#!/bin/bash
for i in `seq 1 5`
do
if [ $i -le 3 ]
then
echo "$i"
else
break
#exit 0
fi
done
echo "Test finished"
如果是break , 最后将打印 “Test finished”
如果是exit ,将不会打印。
break广泛指的是跳出上一级循环(for ,while等循环),直接进行下面的语句
exit指的是当前脚本的退出,之后的语句都将得不到执行。
#!/bin/bash
for i in `seq 1 5`
do
if [ $i -le 3 ]
then
echo "$i"
else
break
#exit 0
fi
done
echo "Test finished"
如果是break , 最后将打印 “Test finished”
如果是exit ,将不会打印。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-04
展开全部
1、如果a.sh只是结束程序,没什么区别 2、如果b.sh调用a.sh脚本,b.sh要根据a.sh执行结果继续任务 exit 0表示成功了 exit 1表示有错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询