Gibt es bekannte und häufig verwendete Shell-Scripting-IDEs für Un * x?


23

Gibt es IDEs, die auf Shell-Skripte abzielen, insbesondere Bash- und Zsh-Skripte? Dies bedeutet Syntaxhervorhebung für Shell-Skripte und vor allem Debugging-Umgebungen mit Funktionen wie Haltepunkten, Überprüfung und Änderung von Variablen usw., wie sie auch für reguläre Programmiersprachen wie Python, Java und C verfügbar sind.

Zum Beispiel hat Microsft Windows Powershell IDEs wie Powershell Plus und PowerGui .

Googeln brachte eine Kombination aus ShellEd , einem Eclipse-Plugin zum Bearbeiten von Shell-Skripten, und BashEclipse , einem Bash-Debugger, der mit ShellEd zusammenarbeitet, hervor. Ich habe es noch nicht ausprobiert.

Gibt es andere Shell-Scripting-IDEs für Un * x, die dieser Kombination ähneln? Hat jemand Erfahrung mit ihnen?


10
Ich habe nicht abgelehnt, aber wer auch immer, hat dies getan, weil Sie keine Frage stellen. Die einzige Frage in Ihrem Beitrag kann mit Ja / Nein beantwortet werden. Was fragst du eigentlich? Wie funktionieren diese Programme? Was sie machen? Was versuchst du genau zu tun?
Terdon

10
Eine Bash-IDE? Kernspaltung, um Wasser zum Tee kochen ...
jasonwryan

5
Tatsächlich ist ein Bash-Debugger eine sehr gute Idee - genau wie bei jeder anderen Programmiersprache ist Ihr Code besser, wenn Sie langsam durch jede Zeile im Debugger gehen, die Variablen untersuchen, über die Funktionsweise des Codes nachdenken usw. Ein Debugger ist der beste Weg, dies zu tun, selbst wenn Ihr Programm oder Skript keine Fehler aufweist. Sie können bashdb in den meisten Distributionen bekommen, was Ihnen erlaubt, dies im Textmodus zu tun. Außerdem kann der DDD-Grafik-Debugger für ältere Versionen so eingestellt werden, dass er mit bashdb funktioniert, sodass Sie eine "visuellere" Erfahrung erzielen.
Stabledog

1
Ja, das kann man sicher. Und viele tun es, und so kommen sie jahrelang zurecht. Wenn das zu Ihnen passt, würde ich nicht versuchen, Sie anders zu überzeugen. Meiner Meinung nach ist es ein minderwertiger Ansatz, der das Gehirn mit geringwertigen Aufgaben belastet (z. B. das mentale Verfolgen der Werte von Variablen usw.). Die Idee einer guten Debugger-Benutzeroberfläche setzt diese Zyklen frei, um über das Programm nachzudenken. Nach meiner Erfahrung ist dies wichtig - Sie haben mehr Zeit, sich darauf zu konzentrieren, was das Programm tut, wenn Sie weniger davon für solche Dinge ausgeben.
Stabledog

1
Für diejenigen von uns, die in den USA oder in Europa Wasserkocher oder Herde haben, wird ein Großteil der Grundlast unserer Stromerzeugung durch Kernkraftwerke gedeckt. Wenn wir also Wasser für Tee kochen, nutzen wir zumindest teilweise die Kernspaltung.
Andrew Janke

Antworten:


14

Ich würde nicht sagen, dass es entweder gut bekannt ist oder gut verwendet wird, aber Sie könnten einen Blick darauf werfen, wie man die Klipse schlägt :

Bildbeschreibung hier eingeben

Ich muss zugeben, dass ich keine Erfahrung mit Basheclipse habe und es sogar nicht installieren konnte, weil die Eclipse-Version nicht übereinstimmt.

Auf der anderen Seite verwende ich Bash- und Ksh93- spezifische Debugging-Funktionen, insbesondere die trap ERRund trap DEBUG, aber nicht die auf ihnen basierenden Debugger Kshdb und Bashdb


Ich finde es ziemlich ironisch, dass Ihr Screenshot von einem Fenster im Windows-Stil stammt.
Agi Hammerthief

@ NigelNquande Um ehrlich zu sein, ich bin kein basheclipse (oder Eclipse für diese Angelegenheit) Benutzer. Ich benutze definitiv die Debugging-Funktionen von ksh93 und bash, aber keine GUI. Dieser Screenshot stammt von der basheclipse-Site. Es könnte sich um ein Gnomenthema handeln oder nur um einen echten Windows 7-Screenshot, wenn man die OS = "cygwin" -Zeile verwendet.
Juli

Nun, IMO, wenn du etwas machen willst, mach es mit Stiefeln, nicht mit einem halben Ed (aber das ist weder hier noch da für irgendjemand anderen). Unter bashWindows scheint mir das eine halbe Miete zu sein, wenn es unter GNU / Linux einwandfrei funktioniert.
Agi Hammerthief

@ NigelNquande Wie ich schrieb, ist dies kein Screenshot von mir. In jedem Fall verwende ich bash nur unter Windows, wenn ich keine andere Wahl habe, und es cygwinist sehr effizient, das zugrunde liegende Betriebssystem zu verbergen.
Juli

1
@ user7000 Ich habe geschrieben und konnte es sogar nicht installieren, weil die Eclipse-Version nicht übereinstimmt, aber ich kann mich nicht erinnern, welche Eclipse-Version es war. Es ist jedoch dokumentiert, dass es mit Eclipse 4.5.2 funktioniert: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre

8

Eine speziell entwickelte IDE würde den Zweck von Shell-Skripten irgendwie zunichte machen, ganz zu schweigen davon, dass dies fast unmöglich ist, da die Shell hauptsächlich externe Befehle aufruft - wie können Sie das debuggen? Das Debuggen mit Checkpoints ist für eine Shell nicht intuitiv - Shell-Skripte verarbeiten Dateien in der Regel stark und haben daher bei jedem Aufruf destruktive Nebenwirkungen. Scripting BY DESIGN arbeitet zeilenweise, sodass Ihre "Umgebung" eigentlich das Terminal selbst ist - Sie können immer Variablen wiedergeben, Ihre Umgebung ist immer für Sie da, es gibt keinen "vorgeschriebenen Ablauf", den Sie unterbrechen müssten. Sie tun nach und nach, was Sie wollen, Zeile für Zeile, testen jedes Mal, ob Sie das bekommen haben, was Sie wollen, und fügen diese Zeilen dann in ein Skript ein, um sie erneut zu verwenden.

Für vollqualifizierte Skriptsprachen (Python, Perl usw.) haben Sie all dies, aber bash / zsh / ksh / ... sind interaktive "Kleber" für andere Befehle und ihre eigenen Debugger.

Die meisten Texteditoren heben jedoch den Code für Sie hervor und emacsbieten (vorausgesetzt, Sie finden die richtigen Pakete, die ich für Shell-Skripte nie gemacht habe) eine programmierbare Vervollständigung von Schlüsselwörtern. Ich glaube, das vikann ich auch (bitte fang hier keinen Flammenkrieg an).


2
Wie definieren Sie eine "vollqualifizierte Skriptsprache"?
Trevor Sullivan

1
@ TrevorSullivan auf seine Weise. Geben Sie bitte nicht dem Hass nach.
Det

1
@Det: Es war eine berechtigte Frage - wenn wir uns nicht alle auf eine gemeinsame, konkrete Definition des Ausdrucks einigen können, könnten wir genauso gut keine Diskussion darüber haben. Ich bin nur neugierig, was damit gemeint ist.
Trevor Sullivan

3
Ich bin nicht einverstanden, dass IDEs den Zweck von Shell-Skripten zunichte machen. Möglicherweise möchten Sie Ihre Shell-Skripte bereinigen (z. B. Inline-Fremdvariablen, Erkennen nicht verwendeter Variablen - das ist das, was ich versuche, um meine System V Init-Skripte zu bereinigen, die unnötig lang werden, insbesondere wenn sie von vorhandenen Beispielen dupliziert werden).
Sridhar Sarnobat

2
Ich würde auch hinzufügen, dass IDE Intellisense oder andere Tools bereitstellt, damit ich nicht weiter googeln oder Manpages durchsehen muss, um mich an einige Dinge zu erinnern. Es ermöglicht mir auch, alle meine Skripte in einem Projekt zusammen zu halten, Zeilen zu übergehen, eingehende Argumente zu untersuchen, Schleifen und Schalter zu testen, eine Pipe zur Inspektion auseinanderzubrechen usw.
cjbarth

2

Ich unterstütze auch die Idee, eine IDE für Bash-Skripte zu verwenden.

Man kann Bash-Skripte mit dem Jupyter-Notizbuch schreiben.

Das Jupyter-Notebook kann über Anaconda installiert werden, während ein Bash-Kernel für Jupyter-Notebook (oder Jupyterlab) mit den folgenden Befehlen ( Quelle ) installiert werden kann :

pip install bash_kernel und

python -m bash_kernel.install

Danach können Sie Bash auf einer neuen Launcher-Instanz von Anaconda Navigator auswählen (siehe Abbildung unten).

Das einzige ist, dass es (soweit ich weiß) nicht mit Befehlen funktioniert, die Sie in die Eingabeaufforderung eingeben müssen, wie z. B. readoder einem anderen Argument, das Sie nach dem Aufrufen des Skripts übergeben. Aber ansonsten funktioniert es ziemlich gut.

Bildbeschreibung hier eingeben


1

Ich bin auf dieses Problem gestoßen, was bedeutet, dass ich nach der Bash-Skript-IDE gesucht habe. Es gibt viele Plugins auf der populären IDE, genau wie Eclipse und viele andere. Aber es ist eine Menge Arbeit, sich mit IDEs zu befassen, nur um kleine Bash-Skripte zu erstellen. Andererseits verursacht das Arbeiten mit Editoren viele Syntaxfehler und Zeitverschwendung, ganz zu schweigen davon, dass es überhaupt keinen Spaß macht.

Daher habe ich ein Online-Bash-Skript-Tool zum Erstellen von Skripten gefunden: http://bashops.net . Es ist online und kann sofort mit dem Erstellen von Bash-Skripten beginnen, ohne mit der Installation beschäftigt zu sein.


1

Rogalmic hat VSCode-Plugins für bashdb und zshdb geschrieben .

Sie basieren auf meinen Debuggern für bash und zsh , so dass sie viele der Randfälle behandeln, die im Eclipse-Debugger für bash fehlen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.