Wie kann ich in Mac OS X ein Bash-Skript schreiben, das ein Terminalfenster in einem bestimmten Verzeichnis öffnet? Ich würde sowas annehmen wie:
open /Applications/Utilities/Terminal.app
Aber das tut nichts (vielleicht lädt es die Terminal-Anwendung, die bereits geöffnet ist, anstatt ein neues Terminal-Fenster zu öffnen). Und natürlich wird es nicht in ein Verzeichnis gecd, da ich das nicht angegeben habe ...
Hier ist ein kleines Skript, das ich erstellt habe:
#!/usr/bin/osascript
on run argv
set dir to quoted form of (first item of argv)
tell app "Terminal" to do script "cd " & dir
end run
Wenn Sie diese speichern und ausführbar machen
chmod +x script_filename
und führen Sie es dann aus
script_filename ~/Desktop
dann öffnet es ein neues Terminalfenster und wechselt in das Verzeichnis im Argument.
Wenn Sie ab Mac OS X Lion 10.7 einen Ordner mit Terminal öffnen, wird an diesem Ort ein neues Terminal erstellt. Beispielsweise können Sie einen Ordner auf das Terminal-Anwendungssymbol oder in eine Registerkartenleiste ziehen, um eine neue Registerkarte zu erstellen, und es gibt Dienste (Neues Terminal in Ordner), die Sie aus dem Kontextmenü verwenden können, um ein neues Fenster oder eine neue Registerkarte für ein zu öffnen ausgewählten Ordner im Finder oder anderen Anwendungen (oder sogar einen im Text ausgewählten Pfadnamen).
Um das Äquivalent über die Befehlszeile (oder ein Shell-Skript) auszuführen:
open -a Terminal /path/to/folder
Dies ist das Befehlszeilenäquivalent zum Ziehen des Ordners auf das Terminal-Anwendungssymbol. (Sie können auch einen vollständigen Pfad für Terminal angeben, wenn Sie eine bestimmte Kopie/Version der Anwendung angeben möchten.)
Ich bin mir nicht sicher, ob das Folgende von einem Bash-Skript aus funktioniert, aber zumindest habe ich herausgefunden, wie man bestimmte Registerkarten in bestimmten Verzeichnissen öffnet:
In den Einstellungen kopieren Sie unter Einstellungen das Profil, das Sie normalerweise verwenden möchten. Unter Shell können Sie ihm "Befehl ausführen" mitteilen: cd /some/directory
. Sie sollten auch "In der Shell ausführen" aktivieren. Optional können Sie unter Fenster einen Titel angeben.
Fügen Sie auf diese Weise weitere Profile hinzu.
Schließen Sie dann alle Terminalfenster, öffnen Sie dann ein Profil in einem neuen Fenster, ein weiteres Profil in einem neuen Tab und ein weiteres Profil in einem neuen Tab. Jetzt haben Sie ein Fenster mit drei Registerkarten. Speichern Sie diese als Fenstergruppe.
Von nun an können Sie diese Fenstergruppe öffnen, wenn Sie Terminal ausführen, und Sie erhalten ein neues Fenster mit diesen Registerkarten in diesen Verzeichnissen.
Offene Frage: Wie sage ich Terminal, dass es eine neue Fenstergruppe aus einem Bash-Skript öffnen soll?
um01