shell脚本中set指令

set -x介绍

用于脚本调试,在liunx脚本中可用set -x就可有详细的日志输出.免的总是用echo了

参考

#!/bin/bash
set -x
a=${1}
b=$

 结果

bash This is a premium name 1 2
+ a=1
+ b=1

set -e介绍

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

参考

#!/bin/bash set-e lp #这里运行会出错 date 这种情况下,运行一旦出错就会退出,不放过一个问题: $ ./test.sh lp: Error - nodefaultdestination available. 当然了,这也有不好的地方,有时候命令执行本来就可能是失败的,你还是希望它继续,可以临时加上|| true: #!/bin/bash set-e lp || true date 不过个人觉得这样的设置用处不是特别大,因为很多时候就是需要处理不同的错误情况,而这样只能要么遇到错误退出,要么认为正确,导致无法走到异常分支。

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

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

能够被代替为

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

或者

if ! command; then  
     echo "command failed";   
    exit 1;   
fi  
原文地址:https://www.cnblogs.com/52py/p/15000843.html