Unix/Linux脚本中"set -e"的作用

有些脚本中会看到这样的语句:

#!/bin/bash
set -e
command 1
command 2
...
exit 0

“set -e” 这句语句告诉bash如果任何语句的执行结果不是true则应该退出。这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。

使用-e帮助你检查错误。如果你忘记检查执行语句的结果,bash会帮你执行。不幸的是,你将无法检查$?,因为如果执行的语句不是返回0,bash将无法执行到检查的代码。你可以使用其他的结构:

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  
如果你有一个命令返回非0或者你对语句执行的结果不关心,那你可以使用 command || true,或者你有一段很长的代码,你可以关闭错误检查(不使用set -e),但是我还是建议你保守地使用这个语句。

转自:http://blog.csdn.net/todd911/article/details/9954961

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值