shell调试命令

set -u:遇到不存在的变量就会报错,并停止执行;

set -x:在运行结果之前,先输出执行的那一行命令;

set -e:

set -e:脚本只要发生错误,就终止执行

set +e表示关闭-e选项

command || true,使得该命令即使执行失败,脚本也不会终止执行;

Bash 会把最后一个子命令的返回值,作为整个命令的返回值。也就是说,只要最后一个子命令不失败,管道命令总是会执行成功,因此它后面命令依然会执行,set -e就失效了。

set -o pipefail用来解决这种情况,只要一个子命令失败,整个管道命令就失败,脚本就会终止执行

在脚本头部添加set -euxo pipefail
或执行时传入参数$ bash -euxo pipefail script.sh进行shell脚本的调试

猜你喜欢

转载自blog.csdn.net/qq_29044159/article/details/108303466