ubuntuusers.de

Hilfe bei Scriptausführung

Status: Ungelöst | Ubuntu-Version: Ubuntu GNOME 16.04 (Xenial Xerus)
Antworten |

esperantol

Anmeldungsdatum:
28. März 2008

Beiträge: 46

Hallo liebe User.

Ich stehe vor einem kleinen bzw. für mich großem Problem.

Seit Stunden Versuche ich ein Script unter Gnome3 zur Ausführung zu bringen.

Das Script funktioniert tadellos über das gnome-terminal via "sh ./script1".

Da das Script aber bei einer Bekannten (ohne Terminalkentnisse, da 67 Jahre alt) laufen soll, versuche ich den Aufruf entweder über das Menü oder via Tastenkürzel, z.B. Strg + i auszuführen.

Ich habe lediglich ein Beispiel zum Aufruf von ssh gefunden: ' Exec=sh -c "TERMINAL -x ssh spy@nsa.usa.gov" '

Kann mir jemand weiterhelfen?

Gruß

esperantol

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11248

Wohnort: München

Wenn du ein Shell-Skript über einen Desktop-Starter ausführen lassen willst, solltest du mal .desktop-Dateien lesen, da ist auch ein Beispiel für Shell-Skripte enthalten.

Bei Tastenkürzeln muss die Datei ausführbar sein und du musst natürlich den vollständigen Pfad angeben, wenn das Skript nicht im $PATH liegt.

esperantol

(Themenstarter)

Anmeldungsdatum:
28. März 2008

Beiträge: 46

Hallo.

Danke für die schnelle Antwort.

Das mit den .desktop-Dateien hab ich schon durchgelesen. Funktioniert leider bei mir nicht, da ich nur die Dash anzeigen lassen möchte und der Desktop frei bleiben soll.

Das Script ist ausführbar, sonst hätte sh ./script1 ja auch nicht funktioniert, oder? Der Befehl mit der Tastenkombination sieht so aus:

sh -c "/home/stephan/Dokumente/script1.sh"

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11248

Wohnort: München

Eine .desktop-Datei ist notwendig, um einen Eintrag in der Dash zu bekommen - die Datei muss nicht auf dem Desktop liegen, sondern z.B. in ~/.local/share/applications, damit sie gelistet wird.

Wenn dein Skript ausführbar ist und einen passenden Shebang hat, musst du es nicht in eine zusätzliche Shell packen - da genügt die Pfadangabe /home/stephan/Dokumente/script1.sh

Soll das Skript irgendetwas in einem Terminal-Fenster anzeigen/einlesen? Dann musst du den Terminal-Emulator so starten, dass er mit dem Skript startet - z.B. für gnome-terminal:

gnome-terminal -e /home/stephan/Dokumente/script1.sh

Falls das Fenster auch nach der Ausführung des Befehls offen bleiben soll, schau dir z.B. mal diese Möglichkeit an: http://askubuntu.com/a/46630

esperantol

(Themenstarter)

Anmeldungsdatum:
28. März 2008

Beiträge: 46

Hallo.

Erstmal Tausend Dank für die neuen Infos. werd ich dann gleich mal testen.

Ich denke das Terminal ist nötig, da ich einen "sudo umount" Befehl absetzen muss.

Eingaben des Benutzers sind nicht nötig.

Gruß

esperantol

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11248

Wohnort: München

esperantol schrieb:

Ich denke das Terminal ist nötig, da ich einen "sudo umount" Befehl absetzen muss.

Eingaben des Benutzers sind nicht nötig.

Falls der Befehl nicht in der /etc/sudoers (immer mit visudo bearbeiten, vgl. sudo/Konfiguration) für die passwortlose Ausführung freigegeben ist, wirst du da immer eine Passwortabfrage bekommen - und dann wäre eine Eingabe des Passworts durch den Benutzer notwendig. Mit gksudo müsste man das Passwort nicht im Terminal eingeben, sondern bekäme einen GUI-Dialog angezeigt - dafür kann man es dann nicht mehr ohne X-Server nutzen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13175

seahawk1986 schrieb:

Soll das Skript irgendetwas in einem Terminal-Fenster anzeigen/einlesen? Dann musst du den Terminal-Emulator so starten, dass er mit dem Skript startet - z.B. für gnome-terminal:

gnome-terminal -e /home/stephan/Dokumente/script1.sh

Dafür genügt die Angabe in der .desktop-Datei, dass das Programm im Terminal ausgeführt werden soll.

Terminal=true

Vorteil ist, dass das unabhängig vom DE ist und man sich den expliziten Terminalaufruf sparen kann. Der ist nur sinnvoll, wenn man bestimmte Parameter (z.B. Fenstergröße) explizit beim Aufruf setzen will.

Antworten |