Parece que cuando la Terminal no está abierta, entonces tell application Terminal
abre el Terminal con la primera ventana y do script
abre otra ventana (porque do script
se supone que abre una nueva ventana).
La solución parcial es do script ... in window 1
, que obliga a ejecutar el script en la ventana recientemente abierta, pero cuando la Terminal estaba en uso antes, esto secuestraría la ventana existente (y posiblemente el contexto inadecuado).
El siguiente script me ha servido:
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
(Me inspiré en Propuesta de adayzdone pero no me ha funcionado (en El Capitán). Parece que después de tell application "Terminal"
la condición not (exists window 1)
nunca se sostiene).
1 votos
W
do script "myscript"
?0 votos
@