是否有针对Un * x的知名且使用广泛的Shell脚本IDE?


23

是否有任何针对shell脚本的IDE,特别是bash和zsh脚本?这意味着要对shell脚本进行语法高亮显示,更重要的是要调试具有断点,变量检查和修改等功能的环境,就像可用于常规编程语言(如Python,Java和C)的功能一样。

例如,Microsft Windows Powershell具有诸如Powershell PlusPowerGui之类的IDE 。

Googling组合了ShellEdBashEclipseShellEd是用于编辑Shell脚本的Eclipse插件, BashEclipse是与ShellEd一起使用的调试器。我还没有尝试过。

与该组合类似,还有其他用于Un * x的Shell脚本IDE吗?有人对他们有经验吗?


10
我没有拒绝投票,但是无论谁投票,都是因为您没有提出问题。您帖子中唯一的问题可以用是/否回答。你到底在问什么 这些程序如何工作?他们做什么?您到底想做什么?
terdon

10
bash IDE?核裂变将水
烧成

5
实际上,拥有一个bash调试器是一个非常好的主意-就像使用任何编程语言一样,如果您逐步调试器中的每一行,检查变量,考虑代码的作用等,您的代码会更好。调试器是执行此操作的最佳方法,即使您的程序或脚本没有错误也是如此。您可以在大多数发行版中获得bashdb,这将使您可以在文本模式下进行操作。另外,可以使老化的DDD图形调试器与bashdb一起使用,以便您获得更“直观”的体验。
稳定狗2014年

1
是的,当然可以做到。许多人都这样做了,这就是多年来的成就。如果这适合您,我不会尝试说服您。在我看来,这是一种劣等方法,会通过低价值的任务(例如在心理上跟踪变量的值等)使大脑负担重。好的调试器UI的想法是释放了思考程序的那些周期。以我的经验,这很重要-如果您在程序上花的钱更少,您将有更多的精力集中在思考程序在做什么。
稳定狗2014年

1
对于我们这些在美国或欧洲使用电热水壶或电水壶的人来说,我们的基本负荷发电中有很大一部分是由核电厂提供的,因此当我们将水煮茶时,我们至少是部分地利用了核裂变。
Andrew Janke 2015年

Answers:


14

我不会说它是众所周知的或使用得很好的,但是您可以看看basheclipse

在此处输入图片说明

我必须承认我没有使用basheclipse的经验,甚至由于eclipse版本不匹配而无法安装它。

另一方面,我使用的是bash和ksh93特定的调试功能,尤其是trap ERRand和trap DEBUG,但不是基于kshdbbashdb的调试器


具有讽刺意味的是,您的截屏是Windows风格的窗口。
Agi Hammerthief 2014年

@NigelNquande说实话,我不是basheclipse(或就此而言的月食)用户。我绝对使用ksh93和bash提供的调试功能,但没有GUI。此屏幕快照来自basheclipse网站。给定OS =“ cygwin”行,它可能是一些gnome主题,或者仅仅是一个真实的Windows 7屏幕截图。
jlliagre 2014年

好吧,IMO,如果您要做某事,请穿上靴子,而不是半码(但是这对其他人来说都不是)。对我来说,bashWindows在GNU / Linux上运行良好时显得很轻松。
Agi Hammerthief 2014年

@NigelNquande如我所写,这不是我的屏幕截图。无论如何,我只能在没有选择的情况下在Windows上使用bash,并且cygwin可以非常有效地隐藏基础操作系统。
jlliagre 2014年

1
@ user7000我写的,甚至由于Eclipse版本不匹配无法安装,但我不记得它是什么Eclipse版本。它被记录为可与Eclipse 4.5.2一起使用:sourceforge.net/projects/basheclipse/files/?
source=navbar

8

专门构建的IDE会破坏Shell脚本的目的,更不用说几乎不可能做到这一点,因为大多数Shell都在调用外部命令-您如何调试它?对于外壳程序而言,使用检查点进行调试是违反直觉的-外壳程序脚本通常在文件上进行大量操作,因此每次调用都具有破坏性的副作用。BY DESIGN脚本逐行工作,因此您的“环境”实际上就是终端本身-您始终可以回显变量,您的环境始终存在,没有必须中断的“规定的流程”。您逐步地逐行执行您想做的任何事情,每次都测试您是否获得了想要的,然后将这些行粘贴到脚本中以再次使用。

对于完全合格的脚本语言(Python,Perl等),您确实拥有所有这些,但是bash / zsh / ksh / ...是其他命令的交互式“胶水”,并且是它们自己的调试器。

但是,大多数文本编辑器都会为您突出显示代码,并且emacs(只要您找到了正确的软件包,我永远不会为shell脚本而烦恼)会提供可编程的关键字补全。我相信vi也可以做到这一点(请不要在这里发动战争)。


2
您如何定义“完全合格的脚本语言”?
Trevor Sullivan 2015年

1
@TrevorSullivan以他自己的方式。请不要屈服于仇恨。
2016年

1
@Det:这是一个合理的问题-如果我们不能所有人都同意该短语的共同而具体的定义,那么我们也可能不对此进行讨论。我很好奇这个短语的意思。
Trevor Sullivan

3
我不同意IDE是否会破坏Shell脚本的目的。您可能需要清理shell脚本(例如,内联无关紧要的变量,检测未使用的变量-这是我在清理System V Init脚本时要做的事情,这些脚本变得不必要地长,尤其是从现有示例中复制时)。
Sridhar Sarnobat

2
我还要补充一点,IDE提供了intellisense或其他工具,因此我不必继续使用Google搜寻或查看手册页就可以记住一些东西。这也让我对所有我的脚本保持一起在一个项目中,过线步,检查传入的参数,测试环路和交换机,掰开管道进行检查,等等
cjbarth

2

我也赞同将IDE用于bash脚本的想法。

可以使用jupyter笔记本编写bash脚本。

可以通过anaconda安装jupyter笔记本,而可以使用以下命令()安装jupyter笔记本(或jupyterlab)的bash内核:

pip install bash_kernel

python -m bash_kernel.install

之后,您可以在anaconda navigator的新启动器实例上选择bash,如下所示。

唯一的原因是(据我所知)它不适用于您必须输入到提示符的命令,例如read调用脚本后传递的任何其他参数。但是除此之外,它运行得很好。

在此处输入图片说明


1

我自己遇到了这个问题,这意味着我搜索了bash脚本IDE,与eclipse一样,在Populare IDE上有很多插件。但是发现要处理IDE的工作很多,只是构建小型bash脚本。另一方面,与编辑器一起工作会导致很多语法错误和时间浪费,更不用说它一点也不有趣了。

因此,我找到了一个在线bash脚本工具来构建脚本,该工具称为http://bashops.net,它在线上,可以立即开始构建bash脚本,而无需进行任何安装。


1

Rogalmic为bashdbzshdb编写了VSCode插件。

它们基于我的bashzsh调试器,因此它们可以处理很多bash eclipse调试器所缺少的边缘情况。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.