首页 > 系统服务 > 详细

shell 语句出错或者异常自动退出 不继续执行

时间:2015-08-11 19:28:50      阅读:2918      评论:0      收藏:0      [点我收藏+]

 

       今天操作的时候遇到一个问题,需要把内容重定向到文件,然后再把文件重命名使用,结果重定向的时候已经抛异常了,下面的自然也会接着出现各种问题。所以,还是觉得一些关键操作要做一些判断或者捕获异常,避免出现更严重的问题。

解决办法如下:

使用set -e

你写的每一个脚本的开始都应该包含set -e。这告诉bash一但有任何一个语句返回非真的值,则退出bash。

使用-e的好处是避免错误滚雪球般的变成严重错误,能尽早的捕获错误。更加可读的版本:set -o errexit 

使用-e把你从检查错误中解放出来。如果你忘记了检查,bash会替你做这件事。

不过你也没有办法使用$? 来获取命令执行状态了,因为bash无法获得任何非0的返回值。

你可以使用另一种结构,使用command

使用command

if [ "$?"-ne 0]; then echo "command failed"; exit 1; fi "

可以替换成: 

command ||  echo "command failed"; exit 1; 

或者使用: 

if ! command; then echo "command failed"; exit 1; fi 

shell 语句出错或者异常自动退出 不继续执行

原文:http://my.oschina.net/u/2409113/blog/490833

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!