繁体   English   中英

在Bash脚本中设置-e:发现失败位置?

[英]set -e in Bash scripts: discovering failure location?

众所周知,我们应该使用set -e来使Bash脚本更健壮 然而,与此启用,如果脚本失败,有没有什么办法让猛砸报告失败脚本的哪一行? 目前,我不得不用大量的echo命令重新运行脚本。

我知道调试行号的最佳选择是自定义set -x打印的“ + ”前缀以包含$LINENO

例如,在脚本的顶部:

PS4='($LINENO)+ '
set -x

(不完全是你要求的,但它很方便!)

您可以使用bash -x重新运行(或者在脚本中set -x以激活调试, set +x以便稍后停用它)

不确定行号,但如果将-e(或-u)与-v组合使用,则会在屏幕上打印最后一行时出现错误发生的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM