红联Linux门户
Linux帮助

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

发布时间:2016-02-16 10:34:35来源:linux网站作者:jacolin

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

#!/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://www.linuxdiyf.com/linux/18114.html