Shell Datei (.sh) mit Doppelklick ausführen?
Hey,
neulich bin ich auf Linux geswitcht.
Dort will ich mit einem Doppelklick, dass der Script ausgeführt wird, ohne dass man irgendwie das Terminal sieht. Einfach nur per Doppelklick ausführen. Weiß jemand wie das geht?
Bei mir öffnet sich nur der Text Editor...
Danke im Vorraus!
4 Antworten
Das kommt auf deinen File Manager an, aber vermutlich musst du in den Berechtigungen für die Datei einfach ausführbar anhaken. Meistens wird die Datei ansonsten nicht als ausführbar behandelt.
Im Terminal geht das mit chmod +x
Hast du in deinem Script ein Shebang und eine vernünftige Dateiendung (zb .sh für Shell Scripte)?
Gibt auf Linux verschiedene Dateimanager, die anders funktionieren, deswegen kann man das nur vermuten.
Vielleicht weis es jemand wenn du zb die Distro dazu schreibst und jemand den Dateimanager von dieser Distro besser kennt.
Vielleicht rechtsklick und beim öffnen mit Terminal als Standard auswählen. Viele Grüße
Dafür musst du die Datei ausführbar machen. Bei mit unter KDE mit Dolphin geht das in den Dateieigenschaften unter "Berechtigungen":
Im Terminal wäre das mit
chmod +x DATEINAME
möglich. "DATEINAME" natürlich durch den entsprechenden Dateinamen ersetzen 😜
Danach sollte sich das Skript per Doppelklick ausführen lassen. Wichtig dafür wäre aber auch zu wissen, welche Desktop-Umgebung du benutzt.

Was ist mit Desktop Umgebung gemeint? Also so Ubuntu, Linux Mint oder was anderes?
Nein, damit ist sowas wie GNOME, KDE, Cinnamon gemeint. Denn man kann bei Ubuntu bspw. auch KDE installieren und so weiter, und diese bringen dann ein eigenes Set an Applikationen (in diesem Fall den Dateimanager) mit. Aber das wäre ein Thema für sich.
Mit dem Namen der Distribution kann man die Desktop-Umgebung meist abschätzen. xD
Okay... Jedenfalls der Haken ist bei Ausführbar gesetzt, aber es öffnet sich weiterhin nur der Texteditor... Gibt es dafür eine Lösung?
Kannst du mir gerade deine Distribution bzw. Desktop-Umgebung nennen, bitte? 🙃
Tut mir leid... Ich verstehe noch nicht so ganz was das ist 🫠 Kannst du das nochmal genauer erläutern?
Welches Linux hast du dir denn installiert? Ubuntu? Linux Mint?
Eigentlich nicht. Aber wenn du mir sagst, welche Distribution (Ubuntu, Linux Mint, ...) du verwendest, kann ich dir mit recht hoher Wahrscheinlichkeit sagen, welche Umgebung du verwendest. Die Umgebung ist die Benutzeroberfläche, also wie das Betriebssystem für dich aussieht.
Eine andere Möglichkeit wäre die Shell Skript Datei irgendwo auf deinem System, bei auführbaren Dateien abzulegen. (/usr /bin ~/.local) etc.
Dann erstellst du dir ein sogenanntes .desktop File. In diesem gibst du dann den Pfad zum Skript an. Kannst auch noch Icon und andere Dinge einstellen.
[Desktop Entry]
Version = 1.5
Type = Application
Name = Linphone
GenericName = Telephony client
GenericName[de]=Telefon
Comment = A libre SIP client
Comment[de] = Ein freies SIP-Telefon
# Ikon liegt im Ordner ~/.icons/
Icon = linphone-logo.png
Categories = Office;Telephony;
MimeType = x-scheme-handler/sip-linphone;x-scheme-handler/sip;x-scheme-handler/sips-linphone;x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;
OnlyShowIn = GNOME;XFCE;
Terminal = false
Exec = linphone %F
StartupNotify = true
So könnte das desktop file aussehen. Wichtig ist Exec da dies den Pfad zur Datei die gestartet werden soll angibt. Den Rest kannst du teilweise löschen. Google am besten mal danach um zu sehen was alles möglich ist damit.
LG. Und viel Erfolg 🍀
Unter unixartigen Systemen ist die Dateiendung völlig egal. Du brauchst im Script einen „Shebang", der dem System sagt, wie die Datei ausgeführt werden muss. Trage dazu als erste Zeile folgendes ein:
#!/usr/bin/env sh
Wenn dein Script Bash-Erweiterungen enthält, schreibe „bash“ statt „sh“. Ganz allgemein steht hier das Programm, mit dem das Skript abgearbeitet werden soll. Das klappt auch für Python, PHP und andere Interpreter, die Textdateien abarbeiten können.
Zusätzlich muss die Datei das Executable-Flag gesetzt haben:
chmod +x myscript
Bei Eigenschaften ist der Haken bei ausführbar bereits... Jedoch öffnet sich weiterhin nur der Texteditor