6 votos

script abre dos ventanas de terminal

He codificado este pequeño AppleScript utilizando Automatizador :

tell application "Terminal"
do script "myscript"
end tell

Esto funciona perfectamente pero tiene un efecto secundario: cuando cierro la ventana, siempre queda la ventana del Terminal por cerrar, por lo que hay dos ventanas, la que ejecuta el script y el Terminal.

¿Hay alguna forma de tener una sola ventana en funcionamiento?

1 votos

W do script "myscript" ?

0 votos

@

6voto

adayzdone Puntos 1258

Inténtalo:

tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    do script "echo hi" in window 1
end tell

2voto

Pieter Puntos 151

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).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X