在我看来(如果我错了,请纠正我)bash 在错误消息方面非常糟糕,这些错误消息可以正确地告诉您脚本中的问题出在哪里。例如,我经常会得到“第 953 行的错误 EOF”。这真正意味着fi
在第 127 行有一个缺失。或者,另一个经典是“-bash: line 60: syntax error near unexpected token '('”。这真正意味着我已将我的函数重新声明mything() {}
为别名在第 739 行alias mything=
,除此之外,bash 错误指向没有实际问题的第 60 行(所以我花了一段时间才在第 739 行找到罪魁祸首)。
我试图将最热门的“bash 调试”工具加载到 VS Code 中,但我无法让它工作(我按 F5 运行,然后出现一个框,上面写着“选择调试器”,所以我选择了 bash 调试,但没有任何反应) . 我尝试了一个允许交互式运行代码的在线工具,并说它可以帮助调试,但这也没有帮助。我做了一些 PowerShell,它在报告问题根源方面做得更好。是否有方法(工具或 github 或在线上的脚本分析工具可以扫描脚本以查找函数和别名被重新声明为同名的问题以及其他类似的测试)使我们能够更好地调试 bash 脚本?
我在一本德语 shell 脚本书中找到了这个简单的 shell 断点调试器。您可以在要开始调试的任何地方添加以下两行,并通过在运行时按 Enter 或评估变量和函数来逐步执行。
运行脚本
或者,过去使用
set -x
和修改提示变量PS4
对我有帮助。