Hallo zusammen, ich habe ein kleines Problem mit einem einfach gehaltenen (aller Anfang ist schwer) Shell-Skript. Sobald ich das Skript per Maus über die GUI anwähle, passiert nichts. Rufe ich es über die Konsole auf, funktioniert es einwandfrei. Sicher ist es ein dummer Anfängerfehler, aber da ich über Google nichts gefunden habe, dachte ich mir, ich frage hier mal :) Gruß Thomas
Thomas Ohms wrote:
Hallo zusammen,
ich habe ein kleines Problem mit einem einfach gehaltenen (aller Anfang ist schwer) Shell-Skript. Sobald ich das Skript per Maus über die GUI anwähle, passiert nichts. Rufe ich es über die Konsole auf, funktioniert es einwandfrei. Sicher ist es ein dummer Anfängerfehler, aber da ich über Google nichts gefunden habe, dachte ich mir, ich frage hier mal :)
Äh, und du suchst jetzt den Gedankenleser, der errät, was in deinem Script steht und was es tun sollte aber nicht macht? Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Am Freitag 10 Februar 2006 11:28 schrieb Sandy Drobic:
Thomas Ohms wrote:
Hallo zusammen,
ich habe ein kleines Problem mit einem einfach gehaltenen (aller Anfang ist schwer) Shell-Skript. Sobald ich das Skript per Maus über die GUI anwähle, passiert nichts. Rufe ich es über die Konsole auf, funktioniert es einwandfrei. Sicher ist es ein dummer Anfängerfehler, aber da ich über Google nichts gefunden habe, dachte ich mir, ich frage hier mal :)
Äh, und du suchst jetzt den Gedankenleser, der errät, was in deinem Script steht und was es tun sollte aber nicht macht?
Oder er hat einfach nur vergessen in den Eigenschaften des "Icons" die Option "in Terminal ausführen" zu aktivieren. So long, George
Am Freitag, 10. Februar 2006 11:28 schrieb Sandy Drobic:
Thomas Ohms wrote:
Hallo zusammen,
ich habe ein kleines Problem mit einem einfach gehaltenen (aller Anfang ist schwer) Shell-Skript. Sobald ich das Skript per Maus über die GUI anwähle, passiert nichts. Rufe ich es über die Konsole auf, funktioniert es einwandfrei. Sicher ist es ein dummer Anfängerfehler, aber da ich über Google nichts gefunden habe, dachte ich mir, ich frage hier mal :)
Äh, und du suchst jetzt den Gedankenleser, der errät, was in deinem Script steht und was es tun sollte aber nicht macht?
Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Also solch ein Gedankenleser wäre ja mal nicht schlecht! Hätte ich bei meinen PHP-Safaris gut gebrauchen können. Aber mal Spaß bei Seite: Ich glaube - mit Verlaub - nicht, dass es an dem Skript selbst liegt. Einerseits, weil ich mehrere Skripte verwende, andererseits, weil die Skripte manuell aus der Konsole aufgerufen funktionieren. Nur sobald ich einfach "Mausklick-Fertig"-Aktionen durchführen will, passiert nichts. Die Lustlosigkeit meiner Skripts erkenne ich u.a. auch daran, weil jeder Befehl eine Ausgabe in eine Logdatei macht, die nicht erstellt wird, wenn ich den Nager benutze, aber funktioniert, wenn ich aus der Konsole heraus starte. @George Der Tip war gar nicht so schlecht, allerdings nutzlos. Ich hatte eine Verknüpfung zum Skript angelegt (weil ich nur dort "vom Terminal starten" auswählen kann), doch leider brachte dies keinen Erfolg. x-Attribut ist aber beim Skript gesetzt. Thomas -- "Nichts ist für die Ewigkeit", sprach der Herr und erschuf Microsoft.
On Friday 10 February 2006 15:19, Thomas Ohms wrote:
Sobald ich das Skript per Maus über die GUI anwähle, passiert nichts. Rufe ich es über die Konsole auf, funktioniert es einwandfrei. [...] Ich glaube - mit Verlaub - nicht, dass es an dem Skript selbst liegt. Einerseits, weil ich mehrere Skripte verwende, andererseits, weil die Skripte manuell aus der Konsole aufgerufen funktionieren.
Das heißt aber nicht automatisch, dass die Skripte dann beim Aufruf ohne Konsole funktionieren. Unterschiede könnten z.B. in den jeweils definierten Umgebungsvariablen liegen.
Die Lustlosigkeit meiner Skripts erkenne ich u.a. auch daran, weil jeder Befehl eine Ausgabe in eine Logdatei macht, die nicht erstellt wird, wenn ich den Nager benutze, aber funktioniert, wenn ich aus der Konsole heraus starte.
Falls Du nicht das gesamte Skript an die Liste schicken willst, könntest Du mindestens mal genauere Angaben über diese Zeilen machen, die für die Ausgabe sorgen sollten. Ansonsten kann man Dir hier sicher besser helfen, wenn Du etwas genauer beschreibst, was Du tust. Gruß, Achim
Am Freitag, 10. Februar 2006 16:26 schrieb Achim Schaefer:
On Friday 10 February 2006 15:19, Thomas Ohms wrote:
Sobald ich das Skript per Maus über die GUI anwähle, passiert nichts. Rufe ich es über die Konsole auf, funktioniert es einwandfrei.
[...]
Ich glaube - mit Verlaub - nicht, dass es an dem Skript selbst liegt. Einerseits, weil ich mehrere Skripte verwende, andererseits, weil die Skripte manuell aus der Konsole aufgerufen funktionieren.
Das heißt aber nicht automatisch, dass die Skripte dann beim Aufruf ohne Konsole funktionieren. Unterschiede könnten z.B. in den jeweils definierten Umgebungsvariablen liegen.
Die Lustlosigkeit meiner Skripts erkenne ich u.a. auch daran, weil jeder Befehl eine Ausgabe in eine Logdatei macht, die nicht erstellt wird, wenn ich den Nager benutze, aber funktioniert, wenn ich aus der Konsole heraus starte.
Falls Du nicht das gesamte Skript an die Liste schicken willst, könntest Du mindestens mal genauere Angaben über diese Zeilen machen, die für die Ausgabe sorgen sollten.
Ansonsten kann man Dir hier sicher besser helfen, wenn Du etwas genauer beschreibst, was Du tust.
Gruß,
Achim
Ok, dann hier mal ein Beispiel: ich habe z.B. ein Script, welches per rsync dafür sorgt, dass die lokalen Dokumente meiner Webseite aus dem Arbeitsverzeichnis ins lokale pub-Verzeichnis synchronisiert werden. Das Script selbst sieht wie folgt aus:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #!/bin/bash
exec /usr/bin/rsync -ruv --delete --exclude *CVSROOT* --exclude *~ --exclude *.webprj --exclude test.php --exclude *templates* --exclude *toolbars* --exclude *.cvsignore /home/.../entwicklung/ /home/.../web-fertig/ > loc_sync.log exit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Ich habe das ganze schon mit und ohne "exec" versucht und die komplette Befehlszeile für rsync in `' '´ gesetzt - ohne Erfolg. Ideen?! Thommy -- "Nichts ist für die Ewigkeit", sprach der Herr und erschuf Microsoft.
On Friday 10 February 2006 17:59, Thomas Ohms wrote:
Das Script selbst sieht wie folgt aus:
#!/bin/bash
exec /usr/bin/rsync -ruv --delete --exclude *CVSROOT* --exclude *~ --exclude *.webprj --exclude test.php --exclude *templates* --exclude *toolbars* --exclude *.cvsignore /home/.../entwicklung/ /home/.../web-fertig/ > loc_sync.log
exit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Ich habe das ganze schon mit und ohne "exec" versucht und die komplette Befehlszeile für rsync in `' '´ gesetzt - ohne Erfolg.
Ideen?!
Ja: Wie wäre es, für die Ausgabedatei auch einen kompletten, absoluten Pfad anzugeben? Gruß, Achim
Am Freitag, 10. Februar 2006 18:13 schrieb Achim Schaefer:
On Friday 10 February 2006 17:59, Thomas Ohms wrote:
Das Script selbst sieht wie folgt aus:
#!/bin/bash
exec /usr/bin/rsync -ruv --delete --exclude *CVSROOT* --exclude *~ --exclude *.webprj --exclude test.php --exclude *templates* --exclude *toolbars* --exclude *.cvsignore /home/.../entwicklung/ /home/.../web-fertig/ > loc_sync.log
exit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Ich habe das ganze schon mit und ohne "exec" versucht und die komplette Befehlszeile für rsync in `' '´ gesetzt - ohne Erfolg.
Ideen?!
Ja: Wie wäre es, für die Ausgabedatei auch einen kompletten, absoluten Pfad anzugeben?
Gruß,
Achim Warum in die Ferne schweifen, wenn das Gute liegt so nah. Achim, ich danke Dir, genau das war die Lösung! Ich glaub ich muss wirklich mal wieder zurück denken an meine Anfangszeit mit PHP: "nie zu sicher sein".
Thommy -- "Nichts ist für die Ewigkeit", sprach der Herr und erschuf Microsoft.
Hallo, Am Fri, 10 Feb 2006, Thomas Ohms schrieb:
Am Freitag, 10. Februar 2006 18:13 schrieb Achim Schaefer:
On Friday 10 February 2006 17:59, Thomas Ohms wrote:
Das Script selbst sieht wie folgt aus:
#!/bin/bash
exec /usr/bin/rsync -ruv --delete --exclude *CVSROOT* --exclude *~ --exclude *.webprj --exclude test.php --exclude *templates* --exclude *toolbars* --exclude *.cvsignore /home/.../entwicklung/ /home/.../web-fertig/ > loc_sync.log
exit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [..] Wie wäre es, für die Ausgabedatei auch einen kompletten, absoluten Pfad anzugeben? [..] Warum in die Ferne schweifen, wenn das Gute liegt so nah. Achim, ich danke Dir, genau das war die Lösung!
Aber "AUA": Du solltest UNBEDINGT die Wildcards im script quoten. Je nachdem von wo das Script aufgerufen wird expandiert die shell eben die * und du rufst rsync statt mit '--exclude *~' mit '--exclude .bashrc~ .foo~ .bar~ --exclude' usw. auf, was wohl flasch ist. Also QUOTEN! Wie immer wenn nicht die shell etwas expandieren soll: /usr/bin/rsync -ruv --delete --exclude '*CVSROOT*' --exclude '*~' \ --exclude '*.webprj' --exclude 'test.php' --exclude '*templates*' \ --exclude '*toolbars*' --exclude '*.cvsignore' \ /home/.../entwicklung/ /home/.../web-fertig/ > /pfad/zu/loc_sync.log Und lies nochmal 'help exec' was das exec bewirkt. -dnh -- Ein Mann, ein Wort. Eine Frau, ein Wörterbuch. -- Michael Wagner
participants (5)
-
Achim Schaefer
-
David Haller
-
Georg Schilling
-
Sandy Drobic
-
Thomas Ohms