Ich habe einen Weg gefunden, um einen neuen Tab zu öffnen iTerm
:
newtabi()
{
osascript -e 'tell application "iTerm" to activate' -e 'tell application "System Events" to tell process "iTerm" to keystroke "t" using command down'
}
Und ich möchte einige Befehle in einem neuen Tab ausführen. Lass es ein einfacher Befehl sein pwd
. Wie es geht?
Wenn ich renne ...
newtabi && pwd
Die neue Registerkarte wird wie erwartet geöffnet, aber der pwd
Befehl wird nicht in der neuen, sondern in der alten Registerkarte ausgeführt, in der ich etwas eingegeben habenewtabi && pwd
Ich benutze zsh
. Mein os istOS X 10.8.5
iTerms
Tab geöffnet wird , wird der neue Tab in der richtigeniTerm
Instanz geöffnet , aber derpwd
letzte Tab der ersten Instanz von iTermterminal 1
zucurrent terminal
. Jetzt sollte der Befehl im aktuellen Fenster anstelle des Fensters ausgeführt werden, das zuerst geöffnet wurde.execution error: System Events got an error: osascript is not allowed to send keystrokes. (1002)
quelle
148:156: syntax error: Expected end of line but found identifier. (-2741)
das schon.Ab mindestens MacOS Mojave, iTerm 3.2.8, wenn Sie Folgendes ausführen:
Es wird als Registerkarte zum aktuellen Fenster hinzugefügt.
quelle
Ich konnte die akzeptierte Antwort nicht zur Arbeit bringen. Ich wollte auch mehrere Befehle übergeben. Das habe ich mir ausgedacht.
Anwendungsbeispiel
Für komplexere Aktionen würde ich empfehlen, die Befehle aufzubrechen.
Dann,
newtabi project
quelle
pwd
, damit der Befehl wie folgt aussieht: `newtabi '$ PWD / foo && Fadenlaufstart'?