Zuerst benutze ich Mac.
Als nächstes muss ich diese "file.sh" ausführen, die wir nennen werden. Jedes Mal, wenn ich es ausführen muss, muss ich Terminal öffnen und Folgendes eingeben:
cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh
Das ist in Ordnung, aber ich denke, es wäre viel schneller, wenn ich die Datei per Doppelklick ausführen würde, finden Sie nicht?
Meine Frage ist also, wie kann ich diese Datei per Doppelklick ausführbar machen?
Meine Ideen waren entweder:
a) etwas wie chmod in terminal eingeben und Berechtigungen ändern?
b) eine Datei erstellen, den oben geschriebenen Code einfügen ^ und diese Datei dann ausführbar machen?
c) irgendwie eine Automatisierung machen, um dies zu tun?
Welcher Weg ist der beste oder gibt es einen noch besseren? Erklären Sie bitte auch so viel wie möglich, ich bin neu im Terminal. Vielen Dank.
quelle
Antworten:
Standardmäßig werden
*.sh
Dateien in einem Texteditor (Xcode oder TextEdit) geöffnet. Um ein Shell-Skript zu erstellen, das beim Öffnen in Terminal ausgeführt wird, benennen Sie es mit der Erweiterung "command", zfile.command
. Standardmäßig werden diese an Terminal gesendet, das die Datei als Shell-Skript ausführt.Sie müssen auch sicherstellen, dass die Datei ausführbar ist, z.
Ohne dies wird das Terminal die Ausführung verweigern.
Beachten Sie, dass das Skript
#!
in diesem speziellen Szenario nicht mit einem Präfix beginnen muss , da Terminal speziell die Ausführung mit Ihrer Standard-Shell anordnet. (Natürlich können Sie eine#!
Zeile hinzufügen , wenn Sie anpassen möchten, welche Shell verwendet wird, oder wenn Sie sicherstellen möchten, dass Sie sie über die Befehlszeile ausführen können, während Sie eine andere Shell verwenden.)Beachten Sie auch, dass Terminal das Shell-Skript ausführt, ohne das Arbeitsverzeichnis zu ändern. Sie müssen Ihr Skript mit einem
cd
Befehl beginnen, wenn Sie ihn tatsächlich benötigen, um mit einem bestimmten Arbeitsverzeichnis ausgeführt zu werden.quelle
cd "`dirname "$0"`"
das aktuelle Arbeitsverzeichnis auf das Verzeichnis einstellen, in dem sich Ihr Shell-Skript befindet.open -n ...
Befehl auszuführen . Es funktioniert, aber jedes Mal, wenn das Terminalfenster geöffnet wird und mir "[Prozess abgeschlossen]" angezeigt wird. Ist es möglich, das Erscheinen des Terminalfensters irgendwie zu verhindern?Entfernen Sie die Erweiterung vollständig und doppelklicken Sie darauf. Die meisten System-Shell-Skripte sind so. Solange es einen Schebang hat, wird es funktionieren.
quelle
Sie können Finder einfach anweisen, die
.sh
Datei im Terminal zu öffnen :Dies hat genau den gleichen Effekt wie das Umbenennen in,
.command
außer dass Sie es nicht umbenennen müssen :)quelle
Der Dateiname sollte in doppelten Anführungszeichen stehen. Da ich Mac- bin mit> In meinem Fall Inhalt der Batchdatei ist
cd / Users / yourName / Documents / SeleniumServer
Java-Jar Selen-Server-Standalone-3.3.1.jar-Rolle Hub
Es wird sicher funktionieren
quelle
Sie können die ausführbare Datei auf
chmod
diese Weise ändernund verwenden Sie diesen Befehl zum Ausführen
quelle