iTermino 2 es un potente sustituto de Terminal.app y tiene soporte para AppleScript. Puedes usar AppleScript para decirle que ejecute comandos en una nueva pestaña o ventana.
Por ejemplo, hagamos una pequeña acción de AppleScript que se pueda llamar. Introduzca lo siguiente en el Editor de AppleScript:
on run argv
set AppleScript's text item delimiters to {" "}
tell application "iTerm"
make new terminal
tell the current terminal
activate current session
launch session "Default Session"
tell the last session
write text argv as string
end tell
end tell
end tell
end run
y luego guardarlo como un script en ~/Documents/Scripts/run-in-new-iterm-tab.scpt
. Ahora podemos llamarlo desde la línea de comandos así:
/Users/ian
> osascript ~/Documents/Scripts/run-in-new-iterm-tab.scpt ls ~/Documents/Scripts
/Users/ian
>
y me aparece una nueva pestaña en mi sesión de iTerm con:
Last login: Thu Aug 28 22:17:17 on ttys003
ls /Users/ian/Documents/Scripts
/Users/ian
> ls /Users/ian/Documents/Scripts
edit keep_drives_alive.sh run-in-new-iterm-tab.scpt touch-in-order.pl
find-missing-itunes-files.pl keep_drives_alive.sh~ start-utorrent.scpt touch-in-order.pl~
/Users/ian
>
Lo cual no está tan mal. Hay algunas mejoras que puedes hacer al AppleScript como mantener el directorio de trabajo actual cuando llamas al comando. Pero eso es lo que te lleva al terreno de juego.
Si utiliza esta pista en esta pregunta puedes convertir todo en un script envuelto en bash que es aún más fácil de ejecutar:
#!/usr/bin/env osascript
on run argv
set AppleScript's text item delimiters to {" "}
tell application "iTerm"
make new terminal
tell the current terminal
activate current session
launch session "Default Session"
tell the last session
write text argv as string
end tell
end tell
end tell
end run
Guárdalo en un lugar de tu PATH
y hacerla ejecutable y entonces sólo hay que ejecutarla:
run-in-new-iterm-tab ls ~/Documents/Scripts
para que funcione.