Ich wollte schon immer ein Skript ausführen können, das ich online direkt aus dem Finder heruntergeladen habe, aber ein Doppelklick auf die Datei funktioniert nicht.
macos
terminal
command-line
bash
Maximus
quelle
quelle
sh
kennzeichnet ein Shell-Skript, das nicht "das Skript in dieser Shell ausführen" soll.shell shell_script
die Shebang-Zeile ignoriert. Die Shell liest die erste Zeile als Kommentar.sh /path/to/file
eine Semantik von der Alternative/path/to/file.sh
?Alternativ könnten Sie auch tun
welches auch die ausführbare Datei mit der angegebenen Shell ausführt (falls im shebang angegeben)
#!/bin/(shell)
quelle
Bearbeiten
~/.bash_profile
und fügen Sie die folgende Zeile hinzu:Führen Sie die folgende Befehlszeile aus:
Dann können Sie Ihre Datei als Programm ausführen
$ myfile
quelle
#~/bin/sh
, währendOSX
das Skript eine.sh
Erweiterung und einealias
für jedes von ihnen haben sollte. : -OFühren Sie die folgenden Schritte aus, um die Skriptdateien auszuführen:
Klicken Sie mit der rechten Maustaste auf die .sh-Datei.
Bewegen Sie den Mauszeiger über Öffnen mit .
Wählen Sie Andere ... .
Sie sollten in dem seine Applications Ordner. Öffnen Sie den Ordner Dienstprogramme und wählen Sie Terminal.app.
Wenn Sie Terminal.app nicht auswählen können, ändern Sie die aktivierten Anwendungen von Empfohlene Anwendungen in Alle Anwendungen . Es ist am unteren Rand des Fensters.
Wenn Sie jede
.sh
Datei mit Terminal.app öffnen möchten , aktivieren Sie das Kontrollkästchen Immer öffnen mit .Klicken Sie auf die Schaltfläche Öffnen in der rechten unteren Ecke des Fensters.
quelle
Der Grund, warum es nach dem Herunterladen nicht funktioniert, ist, dass die Dateiberechtigungen dies nicht zulassen. Um die Ausführungsberechtigungen zu aktivieren, öffnen Sie das Terminal und geben Sie Folgendes ein
chmod 755 /path/to/script
. Anstatt den vollständigen Pfad einzugeben, können Sie das Skript aus dem Finder in das Terminalfenster ziehen. Zum Ausführen einfach eingeben/path/to/script
. Sie können die Datei auch hier per Drag & Drop in das Terminalfenster ziehen. Diese Syntax sollte das Skript unter Verwendung der korrekten Shell ausführen, die in der ersten Zeile des Skripts definiert ist.quelle