In Windows kann ich .bat
Dateien erstellen . Ich doppelklicke darauf und alle Zeilen werden so interpretiert, als hätte ich sie in die Konsole eingegeben.
Welche Datei oder welches Programm muss ich unter OS X verwenden? Wenn ich eine Datei mit schreiben will;
echo hello world
Ich möchte auf diese Datei doppelklicken und sie in einer Konsole ausführen lassen. Wie mache ich das?
command-line
console
Rodrigo
quelle
quelle
Antworten:
Die Grundlagen des Terminals in OS X sind die gleichen wie in Linux. Was Sie speziell suchen, wird allgemein als "Shell Scripting" bezeichnet.
Die Standard-Shell beim Öffnen
Terminal.app
(befindet sich in/Applications/Utilties
) ist die Bash-Shell.OS X verfügt über einen integrierten Shell-Handler, auf den über Finder und andere Anwendungen über die
.command
Erweiterung zugegriffen werden kann, allerdings nicht über die.sh
Erweiterung. Das Einrichten des Skripts für die Ausführung über den Finder ist jedoch noch komplizierter.Speichern Sie diese Datei als
HelloWorld.command
.Erteilen Sie dieser Datei die Erlaubnis, ausgeführt zu werden.
chmod u+x HelloWorld.command
sollte das tun.Öffnen Sie das Verzeichnis, in dem Sie diese Datei im Finder gespeichert haben. Doppelklicken Sie dann auf die
HelloWorld.command
Datei.Dies öffnet ein Terminal und führt das Skript aus. Die Ausgabe auf meinem Computer sieht folgendermaßen aus:
Die alternative Art, diese Datei auszuführen, ist, während Sie sich noch im Terminal befinden, setzen Sie einfach voraus,
./HelloWorld.command
dass Sie sich im selben Verzeichnis wie die Datei befinden.Dies führt zu einer viel einfacheren Ausgabe:
Sie haben gerade ein Shell-Skript in OS X erstellt und ausgeführt!
quelle
chown: u+x: Invalid argument
Das Äquivalent zur Konsole oder Eingabeaufforderung in Windows ist die Terminal-App unter / Programme / Dienstprogramme /.
Das Äquivalent zu DOS (oder wie auch immer sie es heutzutage nennen) ist "bash"
Das Äquivalent einer Batchdatei (.bat) in Windows ist ein Shell-Skript (.sh).
Führen Sie einfach eine Google-Suche nach "bash" "reference" durch und Sie werden den Rest herausfinden. Ich würde auch empfehlen, das Bash Cookbook (O'Reilly) zu kaufen.
Im Einzelnen würden Sie Folgendes in ein Terminalfenster eingeben, um Ihr "Hallo Welt" -Skript zu erhalten:
So erstellen Sie die Datei:
So ändern Sie die Berechtigungen, um die Datei ausführbar zu machen:
So führen Sie das Skript aus:
Wenn Sie im Finder darauf doppelklicken möchten, klicken Sie mit der rechten Maustaste (oder bei gedrückter Ctrl-Taste) auf die Datei und wählen Sie Informationen abrufen. Wählen Sie dann unter Öffnen mit die Terminal-App aus. Oder Sie können die Erweiterung .command anstelle der Erweiterung .sh verwenden.
quelle
Sie möchten wahrscheinlich AppleScript einen Blick geben. Dieses Buch von Sal Soghoian wird von vielen als das beste Buch für AppleScript angesehen.
Eine weitere Möglichkeit für Benutzer, Mac-Apps zu automatisieren, ist die Verwendung von Automator . Vielleicht möchten Sie es auch versuchen. Hoffe das hilft.
Aktualisieren
Es scheint, dass Sie nach etwas wie Unix-Shell-Scripting suchen. Diese beiden Tutorials sind anständig und scheinen die Grundlagen abzudecken.
quelle
Shell-Skripte. Ich glaube nicht, dass Ask Different der geeignete Ort wäre, um ausführlich darüber zu diskutieren, aber es gibt hier eine sehr ausführliche Anleitung: http://tldp.org/LDP/abs/html/index.html
Mac OS X ist ab 10.5 UNIX-zertifiziert (richtig?), Daher gilt diese Weisheit auch für Linux und andere UNIX-ähnliche Betriebssysteme.
(In weniger komplexer Weise ist der Automator von Mac OS X ziemlich leistungsfähig, ebenso wie der AppleScript-Editor, mit dem Shell-Skripte und andere Befehle mit Programmen ausgeführt und in einem praktischen .app-Bundle für Launchpad oder zum Teilen mit ausgeführt werden können.) Freunde)
quelle
Ich habe vor ein paar Tagen ein Video gemacht, das das erklärt. Hoffe, das hilft: http://www.youtube.com/watch?v=Q2jxpJAlsyg
quelle
Für Mac ist die .sh-Datei auch als Shell-Skript bekannt
quelle
.command
..sh
ist ein nicht behandelter Dateityp aus dem Finder (standardmäßig).