ui schrieb:
Ich hab ein großes Bash-Skript das ich schrittweise auf korrekte Funktion überprüfen möchte.
Oha. Möglicherweise wäre es sinnvoll, das große Skript in kleinere funktionale Einheiten zu zerlegen, die dann einfacher getestet werden können. Generell sind Skripte ja eher für kleine Aufgaben gedacht. Programmieren würde man besser in einer anderen Sprache (z.B. Ruby oder Python), die dann auch entsprechende Mechanismen für das Debuggen bereithält.
In den IDEs bekannter Programmiersprachen lassen sich Programme dazu im Einzelschrittmodus ausführen. Mit einer speziellen Taste/Tastenkombination wird sich dann nach und nach durch das Programm von Befehl zu Befehl gehangelt.
Ist mir bekannt.
Die Bash-Skripte ändern für den Debug-Prozess möchte ich eigentlich nicht.
Meine Skripte fangen regelmäßig so an:
| #!/bin/sh
test -z "$DEBUG" || set -x
|
Dann kann man durch Setzen der Umgebungsvariable das Debugging einschalten. Das schöne ist, das funktioniert dann auch über mehrere Skripte hinweg. Die Variable kann man auch ganz einfach beim Aufruf setzten - das ist ein recht unbekanntes Feature:
| $ DEBUG=x das-skript arg1 arg2
|
Nach dem Aufruf ist DEBUG wieder auf dem vorherigen Wert oder ungesetzt.
Aus Vim wird auch nur bashdb aufgerufen (s. mein erstes Posting). Ich schaue mir daher mal bashdb an.
Erzähl doch mal, wie gut bashdb
funktioniert.