众所周知,我们应该使用set -e
制作Bash脚本more robust。但是,启用此功能后,如果脚本 失败,是否有任何方法可以让Bash报告脚本的哪一行失败?目前,我不得不用大量echo
命令重新运行脚本。
答案 0 :(得分:5)
我知道使用行号进行调试的最佳选项是自定义由+
打印的“set -x
”前缀以包含$LINENO
。
e.g。在脚本的顶部:
PS4='($LINENO)+ '
set -x
(不完全是你要求的,但它很方便!)
答案 1 :(得分:2)
您可以使用bash -x
重新运行(或在您的脚本中放置set -x
以激活调试,set +x
稍后停用它)
答案 2 :(得分:0)
不确定行号,但如果将-e(或-u)与-v结合使用,则会在屏幕上显示最后一行时出现错误行。