iTerm 2 è un potente sostituto di Terminal.app e supporta AppleScript. Puoi usare AppleScript per dirgli di eseguire comandi in una nuova scheda o finestra.
Ad esempio, facciamo una piccola azione di AppleScript che può essere richiamata. Inserisci quanto segue in AppleScript Editor:
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
e quindi salvarlo come Script in ~/Documents/Scripts/run-in-new-iterm-tab.scpt
. Possiamo ora chiamarlo dalla riga di comando in questo modo:
/Users/ian
> osascript ~/Documents/Scripts/run-in-new-iterm-tab.scpt ls ~/Documents/Scripts
/Users/ian
>
e ottengo una nuova scheda nella mia sessione 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
>
Che non è male. Ci sono alcuni raffinamenti che puoi fare con AppleScript come mantenere la directory di lavoro corrente quando chiami il comando. Ma questo ti porta al ballpark.
Se usi questo suggerimento in questa domanda puoi trasformare l'intero cosa in uno script bash che è ancora più facile da eseguire:
#!/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
Salvalo in un punto del tuo PATH
e rendilo eseguibile e quindi devi solo eseguire:
run-in-new-iterm-tab ls ~/Documents/Scripts
per farlo funzionare.