Wie führe ich ein SH-Skript über eine Desktop-Verknüpfung aus?

37

Ich versuche eine Verknüpfung zu meinem SSH-Server zu erstellen:

ssh x.x.x.x

Ich habe folgende Datei erstellt:

ssh_home.sh

Es wurde ausführbar gemacht:

sudo chmod +x ./ssh_home

Überprüft, indem Sie mit der rechten Maustaste auf Eigenschaften klicken, um zu überprüfen, ob es ausführbar war und ob es ..

Aber was auch immer ich tue, wenn ich darauf doppelklicke, wird gedit gestartet. Ich habe "Öffnen mit" ausprobiert, aber dort wird keine Terminal-App angezeigt. Ich habe im Internet gesucht, aber nur einen Weg gefunden, um auf die Datei zu verlinken, ohne sie in eine "Verknüpfungsdatei" zu integrieren.

Michel
quelle
2
Haben Sie #! /usr/bin/sham Anfang der Datei (die erste Zeile) hinzugefügt ?
Elend
Aus Interesse, welche Ubuntu-Version verwenden Sie? Im Prinzip sollte es nur darum gehen, die Datei in Properties / Permissions als ausführbar zu markieren, aber am 13.04 scheint dies bei mir nicht zu funktionieren (sogar direkt auf der .sh-Datei, mit #! /bin/bashzu Beginn ...)
Jez W
Überprüfen Sie auch den Eigentümer und die Berechtigungen. Hat der Benutzer, der darauf klickt, die Berechtigung, es auszuführen?
Elend
1
Ihre Befehle können nicht korrekt sein - Sie beziehen sich auf ssh_home.shund /ssh_home, die nicht dieselben Dateien sind.
10.
2
@ Misery: Es ist /bin/shnicht /usr/bin/sh. ( /usr/bin/shWird passieren, auf Systemen zu arbeiten, wo /binund /usr/binsind das gleiche Verzeichnis; ich glaube nicht, dass dies der Fall für Ubuntu ist>)
Keith Thompson

Antworten:

50

Ich weiß, dass dies eine Weile her ist, aber wenn jemand anders fragt, habe ich diese Antwort.

  1. Nautilus öffnen
  2. Menü "Dateien" -> Registerkarte "Verhalten"
  3. Führen Sie beim Öffnen ausführbare Textdateien aus

In späteren Versionen finden Sie diese Option unter: Menü "Dateien" -> "Bearbeiten" -> "Einstellungen" -> Registerkarte "Verhalten"

In Ubuntu 14.10 bewegen Sie die Maus an den oberen Bildschirmrand und die Menüleiste Datei, Bearbeiten usw. wird angezeigt. Klicken Sie auf BEARBEITEN -> Einstellungen -> Registerkarte Verhalten

Peter
quelle
2
Dies sollte meiner Meinung nach die akzeptierte Antwort sein. Ich wurde ziemlich frustriert, als ich herausfand, warum ich das Shell-Skript von Nautilus aus nicht ausführen konnte.
David Baucum
Was ist das Menü "Dateien"? Ich habe es nie gesehen.
IgorGanapolsky
Hat funktioniert. Klicken Sie im Dateibrowser mit der rechten Maustaste auf mein Shell-Skript. Link erstellt. Dann ziehen Sie den Link auf den Desktop und legen ihn dort ab. Wurde auch der obige Schritt in Datei durchsuchen -> Einstellungen -> anstelle von Ansicht ausgeführt.
Maxweber
3
Eine Komplikation ist, dass dies alle ausführbaren Dateien betrifft . (Das könnte sein, was Sie wollen.)
Keith Thompson
Gute Antwort! Unter Ubuntu 18.04 habe ich die Option "Fragen, was zu tun ist" ausgewählt, damit ich sie bei jedem Doppelklick auf eine solche Datei ausführen oder anzeigen kann. Vielen Dank!
MS Berends
36

Ich denke, es wäre besser, eine Launcher-Datei für Ihr Skript zu verwenden, indem Sie eine ~/Desktop/ssh_home.desktopDatei mit folgendem Inhalt erstellen :

[Desktop Entry]
Version=1.0
Exec=/home/yourname/bin/ssh_home.sh
Name=SSH Server
GenericName=SSH Server
Comment=Connect to My Server
Encoding=UTF-8
Terminal=true
Type=Application
Categories=Application;Network;

Auf diese Weise erhalten Sie ein anklickbares Symbol, mit dem Sie Ihr Skript starten können.

Möglicherweise müssen Sie auch das ausführbare Flag setzen mit chmod:

chmod +x ~/Desktop/ssh_home.desktop
Cyril Laury
quelle
1
Diese Methode funktioniert, aber ich bevorzuge eine 1-Datei-Lösung ...
Michel
6
@michel Wenn das gesamte Skript ausgeführt wird ssh host, benötigen Sie das Skript nicht. Ändern Sie einfach die Exec-Zeile in Exec=ssh host.
Geirha
1
Dies ist die einzige Lösung, die für mich funktioniert hat.
Aviad P.
Ich erhalte ein Untrusted application launcherMeldungsfenster, auf dem mein Befehl nicht ausgeführt wird.
Matt
@Matt versuche mit der rechten Maustaste auf das Symbol zu klicken, gehe zu Properties > Permissionsund wähle dann Allow executing file as program. Auch wenn Sie den obigen Text kopieren und in Ihre Datei einfügen , stellen Sie sicher, dass hinter den Zeilen kein Leerzeichen steht . Das kann zu Ihrer Fehlermeldung führen.
Olivia Stork
3

Die "Falle" für mich war, dass ich per Rechtsklick auf die Datei nach einer Möglichkeit gesucht habe, das Verhalten zu ändern (um ein Skript auszuführen, anstatt es in gedit zu öffnen). Nicht mit der rechten Maustaste klicken! Eher über die "normale" Menüleiste geöffnet:

Edit-Preferences-Behaviour und wechsle zu "run" oder "ask each time".

Kommentar: Meiner Meinung nach sollte es auch eine Möglichkeit geben, ein Programm per Rechtsklick auszuführen. Zumal ein Rechtsklick zum Menü "Öffnen mit" führt, mit dem Sie nach "Öffnen mit Bash" suchen, "Bash" jedoch nicht als Option enthalten ist ...

patrick pirker
quelle
Für meinen Geschmack auch ...
Marecky
1

imo die einfachste antwort ist -

  1. Überprüfen Sie, ob die .sh-Datei funktioniert, wenn Sie darauf klicken oder sie in einem eigenen Verzeichnis ausführen.
  2. Wenn es dort funktioniert, klicken Sie mit der rechten Maustaste in "Files aka Nautilus" darauf und wählen Sie "Make Link".
  3. Dies erzeugt eine Datei mit dem Namen 'link to xxxx.sh' im selben Verzeichnis
  4. Ziehen Sie diese auf den Desktop
  5. Benennen Sie es um, wie Sie es wünschen, z. B. 'link to' und 'sh' zu entfernen. Lassen Sie einfach den Namen, es wird weiterhin funktionieren.
Martin Clark
quelle
Sie können auch das Symbol des Links ändern. Klicken Sie mit der rechten Maustaste darauf, wählen Sie Eigenschaften, klicken Sie oben links im Eigenschaftenfenster auf das Standardsymbol und navigieren Sie so lange, bis Sie das gewünschte Bild gefunden haben.
Brian Hellekin
0

Ich würde sagen, die einfachste Möglichkeit, ein Shell-Skript zu den Verknüpfungen hinzuzufügen, ist das Hinzufügen der SH-Datei zum Basisverzeichnis. Nach dem Kopieren in das Ausgangsverzeichnis rufen Sie einfach die benutzerdefinierten Verknüpfungen auf und fügen den Befehl sh yourfile.sh hinzu

Dies war meine Arbeit um zu hoffen, dass es Ihnen hilft

Markovitz Hernandez
quelle