Sembra che quando Terminal non è aperto, quindi tell application Terminal
apre il Terminale con la prima finestra e do script
apre un'altra finestra (perché do script
dovrebbe aprire una nuova finestra).
La soluzione parziale è a do script ... in window 1
, che costringe a eseguire lo script nella finestra aperta di recente, ma quando Terminal era in uso in precedenza, questo avrebbe dirottato la finestra esistente (e probabilmente il contesto non adatto).
Il seguente script ha fatto il trucco per me:
if application "Terminal" is running then
tell application "Terminal"
# do script without "in window" will open a new window
do script "echo HELLO"
activate
end tell
else
tell application "Terminal"
# window 1 is guaranteed to be recently opened window
do script "echo HELLO" in window 1
activate
end tell
end if
(Mi sono ispirato alla proposta di adayzdone , ma non ha funzionato per me (in El Capitan). Sembra che dopo tell application "Terminal"
la condizione not (exists window 1)
non tenga mai.)