Wie führe ich ein Skript aus, indem ich in Windows doppelt auf exe-Dateien klicke?

116

Wie kann ich ein Bash-Skript durch Doppelklicken wie .exeDateien in Windows ausführbar machen ? Ich habe versucht , einen Launcher zu erstellen und ihm das Skript zuzuweisen , aber es gibt zwei Konsequenzen:

  1. Das Terminal blinkt, verschwindet und es wird nichts getan.
  2. Sie müssen angeben, dass das Terminal ausgeführt werden soll, damit es funktioniert.

Ich habe ein Skript, das Tomcat auf einem Offline-PC installiert, einschließlich aller Abhängigkeiten von Tomcat im Skript. Ich muss das Skript auf Doppelklick wie Windows arbeiten lassen, da die meisten, die das Skript verwenden, nicht mit Ubuntu vertraut sind.

Vergiss die obige Erklärung. Ich möchte ein Skript erstellen, das durch Doppelklicken ausgeführt werden kann, ohne das Terminal zu verwenden. Weiß jemand wie?

Gemeinschaft
quelle
Ich denke, Sie schreiben Ihre Desktop-Datei möglicherweise nur schlecht. Können Sie den von Ihnen geschriebenen .desktop-Launcher ( wörtlich ) veröffentlichen?
Jjed
Hast du das auch gesehen? askubuntu.com/q/34597/24694
Jjed
Es ist nur ein Launcher, in dem Sie Namen und Befehl zuweisen, um die nicht so große Idee zu tun
3
muru hat mich darauf hingewiesen und für mich gearbeitet: askubuntu.com/questions/286621/…
draoi
1
Hinweis für zukünftige Besucher: Nautilus, der Standard-Dateimanager unter Ubuntu, wird aufgrund von Sicherheitslücken offenbar ab 2019 keine ausführbaren Dateien mehr in neueren Releases ausführen können. Artikel zum Thema und Code Commit auf GitLab mit Diskussion
Sergiy Kolodyazhnyy

Antworten:

134

Ich habe das getestet und es hat gut funktioniert. Stellen Sie sicher, dass Ihr Skript mit dem richtigen Wort beginnt , z #!/usr/bin/env bash.

Dann folge diesen Schritten:

  • Drücken Sie Alt+ F2, um einen Befehl auszuführen.
  • Tippen dconf-editorund drücken Enter.
  • Im dconfg-editor gehen Sie zu: org ➤ gnome ➤ nautilus ➤ preferences
  • Klicken Sie auf executable-text-activationund wählen Sie im Dropdown-Menü Folgendes aus:

    launch : um Skripte als Programme zu starten.
    ODER
    fragen : um über einen Dialog zu fragen, was zu tun ist.

    Bildschirmfoto

  • Schließen Sie den dconf-editor. Das ist es!

Alternative Methode mit Terminal: Ausführen:

gsettings set org.gnome.nautilus.preferences executable-text-activation 'launch'

Hinweis : Die Datei sollte ausführbar sein. Möglicherweise müssen Sie auch die Dateiberechtigung ändern. Rechtsklicke und setze "Datei als Programm ausführen lassen"

Bildschirmfoto

Quelle .

stevenmc
quelle
Das hat super geklappt. Nur eine Anmerkung, das "Dropdown-Menü" wird durch Klicken auf den Wert rechts von executable-text-activation(Standardwert ist display) erreicht.
Ryanjdillon
5
für diejenigen , die die App nicht aufrufen können, müssen Sie es zuerst installieren mitsudo apt-get install dconf-editor
whale_steward
1
Dies funktioniert überall außer auf dem Desktop. Wie kann ich es auch auf dem Desktop zum Laufen bringen? Ich benutze Xubuntu 14.10.
shrx
Gibt es eine Möglichkeit, dies in LXDE (für Lubuntu) zu tun?
childofsoong
Dies funktioniert hervorragend unter Slax Unix - siehe Slax.org für das wirklich großartige Unix-System, das Sie von einem USB-Stick booten können.
Raddevus
74

Auf Nautilus (AKA-Dateien)

  1. Gehen Sie zu Dateien (In Unity bearbeiten (17.04 oder niedriger))> Einstellungen> Registerkarte Verhalten

    Bildschirmfoto

  2. Ändern Sie die Einstellungen für die ausführbare Textdatei.

    Bildschirmfoto

Anon
quelle
3
Jetzt 'Dateien -> Einstellungen'. (17.04)
niry
Süss! Der Weg zu gehen, imho.
Codepleb
Wie wird die Ausgabe angezeigt?
Amr Lotfy
10

In Ubuntu und allen Unix-basierten Betriebssystemen ist afaik standardmäßig nichts als ausführbar eingestellt. Dafür gibt es zwei Möglichkeiten.

  1. Klicken Sie mit der rechten Maustaste auf das Skript oder die Datei, die Sie ausführen möchten. Gehen Sie zu Eigenschaften und dann zur Registerkarte Berechtigungen. Aktivieren Sie das Kontrollkästchen Ausführen.

  2. Öffnen Sie ein Terminal cdin dem Verzeichnis, in dem sich die Datei befindet. Typ . Dadurch wird die Datei für die Ausführung festgelegt.chmod ugo+x filename

Jetzt können Ihre Benutzer nach Herzenslust doppelklicken.

SomKit
quelle
2
Es wird Sie noch fragen , was mit dem Lauf in Terminal oder Anzeige zu tun oder laufen ... So ist es nicht das, was ich brauche
Nur diese Antwort funktionierte auf Gnome Ubuntu 17.04, um die Desktop-Datei ausführbar zu machen
Kunok
Dies dient zum Ausführen einer Datei auf dem Terminal und nicht zum Doppelklicken darauf.
DimiDak
8

Ich denke, dass das Erstellen einer * .desktop- Datei hier fehlt:

$ cat shortcut-for-my-script.desktop
[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;

Wenn Sie mehr als eine * .desktop- Datei für ein Skript erstellen, können Sie mehrere Konfigurationen erstellen , indem Sie verschiedene Parameter übergeben. Dies ist eine sehr komfortable und benutzerfreundliche Methode.

h0ch5tr4355
quelle
1
Dies ist die beste Antwort für Ubuntu. Beachten Sie, dass Sie möglicherweise nicht angeben müssen (oder wahrscheinlich auch nicht?) Terminal=TrueUnd es Exec=gnome-terminalsei denn, Sie erstellen buchstäblich eine Verknüpfung für ein Skript, dessen Ausgabe in einem Terminalfenster Iconangezeigt werden soll png Sie möchten vielleicht ...
BuvinJ
6

Wenn Sie XFce verwenden, können Sie ein Skript in Thunar ausführen, indem Sie den folgenden Befehl ausführen:

xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default \
             --create --type bool --set true

Oder indem Sie GUI verwenden xfce4-settings-editorund dieselben Eigenschaften erstellen.

Führen Sie aus xfce4-settings-editor, und geben Sie Folgendes ein:

  • /misc-exec-shell-scripts-by-default

  • Boolean

  • WAHR

Bild des xfce4-settings-Editors

jcubic
quelle
Hier erfahren Sie, wie Sie den Zweck mit benutzerdefinierten Aktionen in Thunar erreichen (ohne diese "riskante" Funktion erneut zu aktivieren).
Cipricus
Auch hier erfahren Sie, wie Sie Zenity verwenden und eine Frage "Bearbeiten oder Ausführen?" Erhalten.
Cipricus
2

Sie müssen 3 Punkte überprüfen:

  • Nautilus / Nemo-Konfiguration: https://askubuntu.com/a/286651/301025
  • Die Skriptdatei muss ausführbar sein : https://askubuntu.com/a/275714/301025
  • Das Dateisystem muss die Ausführung ermöglichen :

    1. Geben Sie mounteine Konsole ein
    2. Überprüfen Sie, ob Ihr Dateisystem das noexecFlag hat
    3. Entfernen Sie die Markierung, noexecindem /etc/fstabSie das geänderte System bearbeiten und erneut einbinden (z. B. ein Neustart funktioniert).
Sangorys
quelle
1

Wenn Sie in Desktop einen Start für ein SHEL-Skript oder Whatever erstellen, vergessen Sie nicht, in der Befehlszeile zu signalisieren, dass das Skript im Hintergrund ausgeführt werden soll.

Das Drehbuch stirbt, wenn er fertig ist.

Octávio Filipe Gonçalves
quelle
1
Ich habe das getan, aber was prob ist, das Terminal blinkt nur und nichts passiert
1

Basierend auf dem umaskStandardwert haben Sie standardmäßig keine Berechtigungen für Dateien ausgeführt und müssen den Mod ändern, um Ausführungsberechtigungen zu erhalten.

chmod u+x filename
Ali Dehghani
quelle
1
Brühe Ali sicher, dass ich es getan habe, es ist offensichtlich, dass
0

Als Ergänzung zur Antwort zu Thunar : Diese Antwort würde es einer früheren Funktion von Thunar ermöglichen, Skripte per Doppelklick auszuführen. Diese Funktion wurde jedoch als Sicherheitsrisiko angesehen.

Um dies zu vermeiden, ist es vielleicht die eleganteste Lösung, ein Popup-Fenster mit einer Frage wie "Was möchten Sie mit dieser Datei machen: Ausführen oder bearbeiten?" (Ähnlich wie in anderen Dateimanagern wie PCManFM und Nemo), wenn Sie auf diese Datei klicken - mit Zenity: hier .


Eine Alternative wären benutzerdefinierte Aktionen , vielleicht das beste Feature, das Thunar hat.

Der Befehl, den ich zum Ausführen einer ausführbaren Textdatei verwende, bezieht sich sh -c %fauf eine benutzerdefinierte Aktion mit dem Namen "Skript ausführen / ausführen".

Bildbeschreibung hier eingeben

Die Erscheinungsbedingungen sind einfach "Text":

Bildbeschreibung hier eingeben

Ein ähnlicher Befehl kann verwendet werden, um ein solches Skript im Terminal auszuführen ("Run in terminal"), während das Xfce4-Terminal geöffnet bleibt:

xfce4-terminal -H -x %f

Bildbeschreibung hier eingeben

Optional und möglicherweise bevorzugt besteht eine Möglichkeit, um solche Optionen für alle Textdateien mit Ausnahme der ausführbaren Dateien auszublenden, darin, die Verwendung des Erscheinungsbilds auf .shDateien (oder .pyDateien, wenn dies der Fall ist, usw.) unter "Erscheinungsbedingungen" zu beschränken:

Bildbeschreibung hier eingeben

- bevor Sie die ausführbaren Dateien entsprechend umbenennen.

Cipricus
quelle
-1

Speziell für Android Studio können Sie meine ursprüngliche Antwort hier folgen :

So erstellen Sie Desktop Launcher:

  • Klicken Sie auf Create Desktop Entry..von Extras - Menü.

Bildbeschreibung hier eingeben

  • Es wird nach dem Passwort gefragt. Geben Sie das Passwort Ihres aktuellen Logins ein.

  • Schließlich wird eine Benachrichtigung auf dem Android Studio-Bildschirm wie folgt angezeigt:

Bildbeschreibung hier eingeben

  • Sie können in Anwendungen => Programmierung => Android Studio sehen , und Sie können auf dem Desktop auch nach dem Neustart des Systems sehen.

Danke. :)

Pratik Butani
quelle