bash中的set指令使用说明

先简单看下set指令常见使用,如下:

set -o errexit  等价与set -e   比较好理解,遇到指令运行后返回非0 就返回终止

set -o nounset 等价于set -u

set -o xtrace 等价于set -x

set -o pipefail  适用于管道命令

分析下:管道命令中的最后一个子命令的返回值作为整个管道的返回值,也就是说当管道中前面的命令出现错误但只要最后的子命令可以执行成功时,在整个管道命令的后续如果还有命令的话会继续执行(set -e此时会失效),set -o pipefail就是为了防止这种情况发生,也即只要管道命令中的子命令出现执行错误(也即返回非0),整个管道后续的命令将不会执行。

以上4种情况合并写:

①、

set -uxeo pipefail

②、

set -uex

set -o pipefail

参考:写的非常到位

http://www.ruanyifeng.com/blog/2017/11/bash-set.html?utm_source=tool.lu

原文地址:https://www.cnblogs.com/weihua2020/p/13724617.html