Linux如何调试Shell脚本?bash -x和set -e怎么用?

说白了,在Linux上调试shell脚本其实是相当简单的。
关键是bash -x 和set -e 一起使用。
我们先来说说最重要的事情。
bash -x 可以打印每个脚本的命令以及脚本执行时变量扩展的结果。
这样你就可以直观地看到脚本的执行过程。
在我们去年做的项目中,我就是用这个方法快速发现逻辑错误的。
还有一点是,set -e 在脚本遇到错误时立即停止执行,以防止脚本传播错误。
例如,去年我们运行了一个 3 000 步的数据迁移脚本。
使用set -e后一旦某个文件处理失败,可以立即停止脚本,避免中断整个迁移过程。

一开始我以为bash-x和set-e只能全局启用,但后来发现事实并非如此。
事实上,您可以在本地运行它们,并且只在需要调试的组件上运行 bash-x。
这可以减少日志量并提高调试性能。
等等还有一件事。
set-e有一个例外;也就是if while ,需要注意的是,如果命令失败,脚本不会退出,直到条件判断为止。

所以我的建议是编写shell脚本调试时,可以尝试将bash -x 和set -e 结合起来,这样不仅可以快速发现问题,而且可以保证脚本的健壮性。
你怎么认为?您有什么特殊的场景或恐惧可以分享吗?

linux 如何查看shell版本