有没有一种方法可以逐行执行 Bash 脚本?

6

在此输入图片描述

我在Windows上使用git-bash。我在GitHub上找到了一个我想修改的bash脚本。我克隆了它并在我的pycharm编辑器中打开了它。有一个插件https://www.plugin-dev.com/project/bashsupport/#installation,我已经添加了它,但是根据文档,这个插件只提供了语法高亮等功能。有没有一种方法可以逐行查看代码、设置断点等。我没有太多的shell脚本编写经验,逐行查看代码可能会加快我的学习进度。


您可以在shell中逐行运行脚本... - Mad Physicist
通过谷歌搜索 "bash debugger",我发现了 http://bashdb.sourceforge.net/。我以前从未听说过它,所以无法发表任何评论。 - Mad Physicist
顺便提一下 - 一般来说,当你想要使用 echo -eecho -n 时,应该使用 printf。请参阅 POSIX 规范中 echo 的应用和原理部分 中的相关讨论,并注意,虽然 bash 的 echo 默认情况下不符合规范,但这取决于运行时配置(具有编译时默认值),因此并非总是正确的。 - Charles Duffy
1个回答

4

我通常使用-x标志(短语xtrace或execution trace)进行调试,它有助于添加执行信息(有关调试Bash脚本的信息)。

您可以通过执行以下命令来使用它:

bash -x your-script.sh

或者将其添加到您的脚本中:
set -x

绝对不是最接近的东西。存在一种能够进行单步调试的调试器;上游bash明确为其使用提供了钩子。 - Charles Duffy
@CharlesDuffy,你还记得调试器的名字吗? - iconoclast
1
@iconoclast http://bashdb.sourceforge.net/ -- 注意,我个人不使用它,所以不要把这视为推荐。 - Charles Duffy
1
@iconoclast,顺便说一下,“它的使用的钩子”,请参见DEBUG陷阱和extdebug shell选项修改相同行为。 - Charles Duffy
1
我不知道这个,所以谢谢你!但我不会给你的回答点赞,因为我认为它并不是 OP 寻找的答案。 - We'll See

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接