Ich habe ein Shell-Skript mit Benutzerausführungsberechtigung unter OS X, aber wenn ich darauf doppelklicke, wird es in einem Texteditor geöffnet. Wie kann ich es durch Doppelklicken zum Laufen bringen?
233
Machen Sie das Skript zuerst im Terminal ausführbar, indem Sie Folgendes eingeben:
chmod a+x (yourscriptname)
Klicken Sie dann im Finder mit der rechten Maustaste auf Ihre Datei und wählen Sie "Öffnen mit" und dann "Andere ...".
Hier wählen Sie die Anwendung aus, in der die Datei ausgeführt werden soll. In diesem Fall handelt es sich um Terminal. Um ein Terminal auswählen zu können, müssen Sie von "Empfohlene Anwendungen" zu "Alle Anwendungen" wechseln. (Die Anwendung Terminal.app befindet sich im Ordner Dienstprogramme.)
HINWEIS: Wenn Sie nicht alle Dateien mit dieser Erweiterung verknüpfen möchten, die im Terminal ausgeführt werden soll, sollte "Immer geöffnet mit" nicht aktiviert sein.
.command
ist standardmäßig ausführbare Datei aus dem Finder, ohne die Notwendigkeit Finder instruieren , wie sie zu öffnen..command
Dateierweiterung um.Haben Sie versucht, die
.command
Dateinamenerweiterung zu verwenden?quelle
chmod +x
), aber die.command
Erweiterung ist bereits mit Terminal verknüpft. Tolle Lösung, dankeAb OSX 10.10 (Yosemite) und seit mindestens OS X 10.8 (Mountain Lion) ist das Verhalten wie folgt, wenn Sie ausführbare Skripts im Finder öffnen (doppelklicken) :
.command
:Über Terminals
Preferences... > Profiles
können Sie jedoch festlegen, dass das Fenster beim Beenden des Skripts automatisch geschlossen wird .cd -- "$(dirname "$BASH_SOURCE")"
gleich nach der shebang liniecd -- "$(dirname "$0")"
.chmod +x <script>
im Terminal ausführen . Andernfalls treten die folgenden Symptome auf:.command
: Finder zeigt eine irreführende Fehlermeldung an, die darauf hinweist, dass das Problem über behoben werden kannFile > Get Info
, was nicht der Fall ist. Verwenden Sie diechmod +x
oben vorgeschlagene Methode.#!/bin/bash
): Verhalten ist wie das Suffix.sh
- siehe unten..sh
, ob ausführbar oder nicht:TextEdit.app
oder, falls installiert, mit geöffnetXcode.app
..scpt
oder.applescript
(auch wenn sie selbst als ausführbar gekennzeichnet sind, was normalerweise nicht der Fall ist):[Apple]Script Editor
[1] Ausführbar bedeutet: Ein Skript mit gesetzten ausführbaren Berechtigungsbits und dem aufrufenden Benutzer - relativ zum Besitz der Datei - darf es daher möglicherweise ausführen.
Wenn Sie
chmod a+x
setzen alle Berechtigungs - Bits (was typisch ist), jeder kann rufen Sie es (vorausgesetzt , sie sind auch erlaubt lesen Sie die Datei auf der Basis Lese Berechtigungs - Bit (n) und das Eigentum des Datei).quelle
osascript
Sie in die.command
Datei aufnehmen können, anstatt manuell mit dem Profil herumzuspielen.osascript -e '...'
Befehl am Ende eines Skripts hinzuzufügen ? Was ist der spezifische Befehl und stellt er sicher, dass die rechte Registerkarte geschlossen ist, auch wenn das Skript nicht auf der vordersten Registerkarte ausgeführt wird?osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
... Es funktioniert möglicherweise nicht in jedem Szenario, obwohl die Umleitung bei der Ende ist wirklich der Schlüssel - das Osascript kann ansonsten einfach angepasst werden (z. B. muss das Fenster möglicherweise in eine Registerkarte geändert werden, wenn dies das Standardverhalten Ihres Terminals ist usw.)..command
trotz Ausführung des Profils trotz der Profileinstellung nicht schließen zu lassen ?bash
Skript handelt, fügen Sie esread -p 'Press Return to close this window.'
als letzte Anweisung hinzu.Alternativ können Sie mit Platypus eine normale Mac OS X-Anwendung aus Ihrem Skript erstellen
quelle
Der einfache Weg ist, die Erweiterung in
.command
oder keine Erweiterung zu ändern .Aber das öffnet das Terminal und Sie müssen es schließen. Wenn Sie keine Ausgabe sehen möchten, können Sie mit Automator eine Mac-Anwendung erstellen, die Sie doppelklicken, zum Dock hinzufügen usw. können.
Automator
Anwendung öffnenRun
Schaltfläche in der oberen rechten Ecke, um es zu testen.File > Save
um die Anwendung zu erstellen.quelle
Sie müssen keine Apps von Drittanbietern wie Platypus verwenden.
Erstellen Sie einfach ein Apple-Skript mit dem Skript-Editor und verwenden Sie den Befehl
do shell script "shell commands"
für direkte Befehlsaufrufe oder ausführbare Shell-Skriptdateien. Bewahren Sie die bearbeitbare Skriptdatei irgendwo auf und exportieren Sie sie, um ein Anwendungsskript zu erstellen. Das App-Skript kann durch Doppelklick oder Auswahl im Balkenordner gestartet werden.quelle
Sie können mit RCDefaultApp auch Standardeinstellungen nach Dateierweiterung festlegen:
http://www.rubicode.com/Software/RCDefaultApp/
Möglicherweise könnten Sie .sh so einstellen, dass es in iTerm / Terminal usw. geöffnet wird. Es würde Benutzerausführungsberechtigungen erfordern, z
quelle
chmod 774 filename
Hinweis : Die Datei mit dem Namen 'Dateiname', die das Bash-Skript enthält, hat keine Erweiterung
quelle