Startseite
» MAC OS X
»
Wie man Terminalbefehle aus einem Skript unter macOS ausführt
Wie man Terminalbefehle aus einem Skript unter macOS ausführt
Um Terminalbefehle aus einem Skript unter macOS auszuführen, fügen Sie diese in ein einfaches Shell-Skript ein, machen Sie es ausführbar und starten Sie es anschließend über den Finder oder das Terminal. Verwenden Sie eine .commandErweiterung, um es per Doppelklick zu öffnen. Ein Skript umgeht weder die Datenschutzbestimmungen von macOS noch gewährt es Administratorrechte.
Ein kurzes Shell-Skript beginnt mit einem Shebang, der zsh auswählt.
1. Schreiben Sie die Befehle in eine einfache Textdatei.
Ein Shell-Skript ist eine Textdatei mit Befehlen. Es beginnt mit einem Shebang , der ersten Zeile, die macOS mitteilt, welche Shell die Datei ausführen soll. Die aktuelle Standard-Shell für neue Terminalfenster ist zsh, obwohl ein Administrator eine andere Standard-Shell festlegen kann, wie Apple in seiner Terminal-Anleitung erklärt . Dieses Beispiel verwendet explizit zsh:
#!/bin/zsh
# Print a message when the script runs
echo "Script is running"
Befehle werden unterhalb des Shebangs in separate Zeilen gesetzt. Der Shebang bestimmt den Interpreter, daher muss die von ihm unterstützte Syntax verwendet werden; ein Bash-Skript kann beispielsweise mit `<Bash Script>` beginnen #!/bin/bash. Die Grundlagen werden in Apples Shell-Skript-Leitfaden erläutert.
Sie können TextEdit verwenden, aber stellen Sie sicher, dass die Datei reiner Text ist: Neue TextEdit-Dokumente können Rich-Text sein. Wählen Sie „Format“ > „In reinen Text umwandeln“ oder stellen Sie das Format für neue TextEdit-Dokumente in den Einstellungen auf „Reiner Text“ ein. Rich-Text-Formatierung ist kein Shell-Code. Apple beschreibt diese Optionen in seinem TextEdit-Handbuch . Ein Code-Editor oder ein Befehlszeilen-Editor wie beispielsweise Apple nanofunktioniert ebenfalls.
Speichern Sie das Skript mit der Dateiendung .command an einem Ort, den Sie leicht wiederfinden.
2. Speichern Sie es mit einer .commandErweiterung.
Speichern Sie die Textdatei unter einem aussagekräftigen Namen, z. B. „.txt“ MyScript.command. Die Dateiendung sorgt dafür, dass der Finder das Skript im Terminal öffnet, wenn Sie darauf doppelklicken. Apples archivierte Entwicklerdokumentation beschreibt diesen Doppelklick-Workflow für Shell-Skripte. Überprüfen Sie den Dateinamen im Finder: Endet er auf „.txt“ .command.txt, benennen Sie ihn um, sodass die Dateiendung nur noch „.txt“ lautet .command. Speichern Sie die Beispieldatei während der Einrichtung an einem Ort wie Ihrem Schreibtisch.
Wenn macOS fragt, welche Erweiterung verwendet werden soll, behalten Sie diese .commandund vergewissern Sie sich, dass Finder sie nicht hinzugefügt hat .txt.
3. Machen Sie das Skript ausführbar.
Öffnen Sie das Terminal und erteilen Sie Ihrem Benutzerkonto die Berechtigung, die Datei auszuführen. Geben Sie für das auf dem Desktop gespeicherte Beispiel Folgendes ein:
chmod u+x "$HOME/Desktop/MyScript.command"
Drücken Sie die Eingabetaste. u+xDadurch wird dem Besitzer die Ausführungsberechtigung erteilt; Anführungszeichen schützen Pfade mit Leerzeichen. Ersetzen Sie den Beispielpfad bei Bedarf. Ziehen Sie die Datei in das Terminal oder verwenden Sie das Finder-Menü (Option-Klick), um den Pfadnamen zu kopieren. Apple beschreibt dieselbe Methode in seinen Anweisungen für ausführbare Dateien .
Der Befehl chmod fügt dem Dateibesitzer die Ausführungsberechtigung hinzu.
4. Führen Sie das Skript aus.
Doppelklicken Sie MyScript.commandim Finder darauf, um es im Terminal auszuführen. Ausgaben und Fehler werden dort angezeigt. Alternativ können Sie den vollständigen Pfad eingeben:
"$HOME/Desktop/MyScript.command"
Oder wechseln Sie zuerst in den Ordner und stellen Sie dem Dateinamen dann ein : voran ./.
cd "$HOME/Desktop"
./MyScript.command
Dieser ./Befehl weist die Shell an, eine Datei im aktuellen Ordner auszuführen. Apples Terminal-Befehlsübersicht erklärt, wie man eine ausführbare Datei anhand ihres Pfadnamens startet.
Starten Sie die Datei über ihren Pfad und überprüfen Sie die Ausgabe im Terminal.
Häufige Fehler beheben
„Zugriff verweigert“: Überprüfen Sie, ob Sie chmod u+xdie richtige Datei ausgewählt haben. Wiederholen Sie den Befehl gegebenenfalls mit dem genauen Dateipfad. Das Ausführbarmachen einer Datei autorisiert nicht automatisch alle darin enthaltenen Befehle.
„Datei oder Verzeichnis nicht gefunden“: Überprüfen Sie den Speicherort und die Schreibweise, einschließlich der Dateiendung. Eine versehentlich gespeicherte Datei MyScript.command.txtentspricht nicht dem obigen Befehl. Durch Ziehen der Datei in das Terminal kann der Pfad eingefügt werden.
Ein Befehl funktioniert bei manueller Eingabe, aber nicht im Skript: Das Skript verwendet möglicherweise eine andere Shell oder greift auf Aliase, Umgebungsvariablen oder das Arbeitsverzeichnis Ihrer interaktiven Terminal-Sitzung zurück. Verwenden Sie das korrekte Shebang, vermeiden Sie die Verwendung von Aliasen und geben Sie Dateipfade explizit an. Falls die Befehle einen bestimmten Ordner benötigen, fügen Sie eine entsprechende cdZeile am Anfang des Skripts hinzu.
Informieren Sie sich über die Berechtigungen, bevor Sie etwas teilen.
Das Ausführungsbit ist von den Datenschutzberechtigungen getrennt. Ein Skript wird normalerweise unter Ihrem Benutzerkonto ausgeführt; verwenden Sie es sudonur für Befehle, die Administratorrechte erfordern.
macOS kann Zugriff auf geschützte Ordner oder andere Apps anfordern. Prüfen Sie jede Anfrage und erlauben Sie nur den benötigten Zugriff. Unter „Apple-Menü“ > „Systemeinstellungen“ > „Datenschutz & Sicherheit“ finden Sie die Einstellungen für „Dateien & Ordner“ und zugehörige Datenschutzeinstellungen . Die Genehmigungen hängen vom angeforderten Zugriff und der anfragenden App ab; es handelt sich nicht um pauschale Berechtigungen pro Befehl, und sie werden nicht mit einem gemeinsam genutzten Skript übertragen.
Bevor Sie ein Skript ausführen oder weitergeben, lesen Sie jede Zeile sorgfältig durch und vergewissern Sie sich, dass Sie die Änderungen verstehen. Eine .commandDatei ist praktisch, da sie nach dem Öffnen sofort ausgeführt werden kann. Verwenden Sie daher nur Dateien aus vertrauenswürdigen Quellen.