是否有shell脚本的GUI调试器

时间:2014-05-22 10:03:43

标签: linux eclipse bash shell

在命令行上调试bash脚本很复杂。

是否有一个好的基于GUI的调试器可用于调试bash脚本?

2 个答案:

答案 0 :(得分:6)

下载ShellEd eclipse插件(更新网站对我不起作用),允许编辑bash脚本。通过Help -> Install new software -> Add -> Archive安装。

下载basheclipse并将内容解压缩到您的eclipse plugins目录插件。

重启eclipse。创建一个新的Eclipse项目BashTest

将文件myscript.sh添加到项目中:

#! /bin/bash

. _DEBUG.sh

echo 'kshitiz'
echo 'This is a test'
x=1
y=3
z=3

_DEBUG.sh添加到您的项目中(在basheclipse的下载zip中)。

转到Run -> Debug configurations并在Bash script类别下创建新配置。选择myscript.sh

enter image description here

然后点击Debug。打开Debug视角。

转到Window -> Preferences -> Shell script -> Interpreters并确保解释程序为/bin/bash。对我来说,默认值为/bin/dash

enter image description here

在脚本中设置断点。由于某种原因,右键单击菜单不显示设置断点的选项,但Ctrl+Shift+B应该有效。 enter image description here

运行脚本Run -> Run as -> Run shell script。断点会命中,但它无法找到你的脚本源(很奇怪呃!)。只需点击Select Bash script,然后选择myscript.sh即可。

现在您可以单步执行代码并分析变量: enter image description here

答案 1 :(得分:3)

一个有用的技巧是用

启动你的(可执行的)bash脚本
#!/bin/bash -vx

至少在调试阶段;你会从bash那里得到很多有用的消息。见bash(1)

如果您的脚本不应该在终端中使用(例如,它是从crontab(5)条目调用的),您也可以使用logger(1)命令。

最后,我认为bash不是执行复杂脚本的正确工具。如果您的脚本变得复杂或大于几十行,请考虑切换到更好的脚本语言(例如GNU guilepythongawk等等)。通常,您不应在bash中编写很多代码。调试bash脚本很痛苦通常是一种症状,你应该用更好的语言重新编写该脚本。

您可能还会发现生成您的shell脚本很有用。 autogen可能对此有用。