Archiv verlassen und diese Seite im Standarddesign anzeigen : Schritt fuer Schritt ausfuehren
Hi
Ich schreibe gerade ein Shellscript und haette dazu zu debugging zwecken gerne folgende Funktion(mir kommt vor, dass ich schon mal davon gelesen habe) also er zeigt mir den Befehl bei dem er grad ist an ich klicke enter und erst dann fuehrt er den Befehl aus.
Also quasi ein set -x mit Bestatigung.
Weiss wer wie das geht?
by
Lukas
Hans-Georg Normann
27-09-2003, 14:58
Weiss zwar keine direkte Antwort auf deine Frage, aber schon mal die Option -v probiert? Löst die Variablen auf.
Wenn's zu schnell durch rasselt, leite doch die Standardausgabe mit tee in einen LOG File um.
Hi
Also mein Problem ist, dass ich ein Script hab(ziemlich gross) will damit ein haufen programme kompilieren und so sachen und hab irgendeinen Fehler drinn(logisch) also moechte ich jetzt jeden befehl durchgehen in dann ausfuehren um zu sehen wo der Fehler liegt.
Und naja das mit dem umleiten waer vielleicht ne moeglichkeit aber da kommen dann sehr grosse Dateien raus(configure und make geben sehr viel aus)
by
Lukas
ich verstehe zwar nicht ganz, was du willst (schon spaet hier), aber wenn das wort "tee" faellt, sollte auch "script" erwaehnt werden. desweiteren kannst du die befehle in deinem skript ja mit "echo" auf die konsole werfen, bevor du sie ausfuehrst - hilft das?
gruss,
samsara
Badsteve
07-10-2003, 16:07
ungetestet:
perl -ne 'unless (m/^(#|$)/) {system($_); <STDIN>;}' script.sh
Steve
Hans-Georg Normann
07-10-2003, 18:00
Mir ist da noch ne Kleinigkeit eingefallen. Satt dein Shellscript gleich zu Anfang mit der Option -xv aufzurufen, kannst du auch im Shellscript selbst an beliebiger Stelle ein set -xv einfügen. Das aktiviert dann die Zeilenverfolgung. Ein set - sorgt dann wieder für ruhe.
buffer_7
12-10-2003, 12:23
Mahlzeit,
ich weiß, die Lösung, die ich in einem solchen Fall verwendet habe ist dilletantisch, aber sie funzt.
Der "dirty hack" ist einfach , vor jedem Befehl den Du überwachen willst, setzt Du wie schon gesagt wurde ein echo "Befehl" und in der Zeile drunter ein read muell
dann den wirklichen Befehl und wieder ein read muell.
Der Sinn und Zweck, jedes echo zeigt Dir welcher Befehl ansteht, das read muell wartet bis ein ENTER kommt, dann wird der Befehl ausgeführt und bleibt beim nächsten read muell stehen und Du kannst die Ausgabe lesen, und mit einem ENTER gehts genauso weiter.
wie gesagt, der hack ist verdammt dirty, aber funzt.
Bessere Ideen werden von mir mit Kußhand angenommen, da das bei langen Scripts eine Höllenarbeit sein kann.
Gruß
Ihr und Euer
buffer_7
Badsteve
12-10-2003, 12:43
@ buffer_7
was anderes macht mein Perl-Script auch nicht. Ich weiß aber nicht, ob das mit Variablen auch klappt.
Steve
buffer_7
12-10-2003, 13:33
@badsteve
Tja, kann kein Perl :( , habe desterwegen Dein Dingens nicht verstanden und so ist die Duplizität entstanden. Aber die Hauptsache ist ja, daß geholfen wurde und jetzt gibt es sogar verschiedene Lösungen. Wenn das nicht Sinn des Forums ist, dann hab ich das immer noch nicht geschnallt. :D
Ihr und Euer
buffer_7
p.s.: Auserdem ist meins getestet. :p
Badsteve
12-10-2003, 13:48
Original geschrieben von buffer_7
@badsteve
Tja, kann kein Perl :( , habe desterwegen Dein Dingens nicht verstanden und so ist die Duplizität entstanden. Aber die Hauptsache ist ja, daß geholfen wurde und jetzt gibt es sogar verschiedene Lösungen. Wenn das nicht Sinn des Forums ist, dann hab ich das immer noch nicht geschnallt. :D
Ihr und Euer
buffer_7
p.s.: Auserdem ist meins getestet. :p
klar ist das der Sinn des Forums. Das sollte auch kein Vorwurf sein, ich wollte nur sagen, dass du nicht der einzige bist der eine solche Idee hatte.
Steve :D
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.