在shell脚本中`set -o errtrace`有什么作用?

在shell脚本中`set -o errtrace`有什么作用?,第1张

在shell脚本中`set -o errtrace`有什么作用?

从手册中:

errtrace与-E相同。

-E如果设置,则ERR函数上的任何陷阱都将被Shell函数,命令替换以及在子Shell环境中执行的命令继承。在这种情况下,通常不会继承ERR陷阱。

errtrace
被使能,当错误(命令返回一个非零码)函数或子外壳内发生也被触发的ERR陷阱。换一种说法是,除非
errtrace
启用,否则函数或子Shell的上下文不会继承ERR陷阱。

#!/bin/bashset -o errtracefunction x {    echo "X begins."    false    echo "X ends."}function y {    echo "Y begins."    false    echo "Y ends."}trap 'echo "ERR trap called in ${FUNCNAME-main context}."' ERRxyfalsetrue

输出:

X begins.ERR trap called in x.X ends.Y begins.ERR trap called in y.Y ends.ERR trap called in main context.

errtrace
未启用:

X begins.X ends.Y begins.Y ends.ERR trap called in main context.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4976869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存