Parece que encontrei a resposta para a minha pergunta
tell application "Terminal"
quit
tell application "System Events"
keystroke return
end tell
end tell
Estou tentando forçar fechar meu Terminal.app usando o Editor de scripts da Apple
tell application "Terminal"
quit
end tell
tell application "System Events"
key code 53
end tell
Não parece funcionar. Como alguém iria e fez isso?
Parece que encontrei a resposta para a minha pergunta
tell application "Terminal"
quit
tell application "System Events"
keystroke return
end tell
end tell
O envio de um comando quit
e keystroke
não equivale a um encerramento forçado. Eu suponho que a solução que você escolheu pareceu funcionar simplesmente porque, depois de ter sido emitido um comando quit
, eu estou supondo que uma caixa de diálogo apareceu perguntando se você gostaria de forçar o encerramento Terminal . Acertar Enter - fisicamente ou programaticamente - selecionaria a opção force-quit apresentada a você.
O problema com o envio de uma tecla pressionada programaticamente é que, se o foco mudasse inesperadamente para outra janela em seu sistema, a tecla pressionada seria enviada para a janela errada.
Um método genuíno de forçar a saída de um aplicativo do AppleScript é obter seu PID e, em seguida, emitir um comando kill
por meio de um script de shell. Na verdade, é apenas uma única linha de código. Veja como ficaria quando usado para lidar com sua situação (formatado em duas linhas para facilitar a leitura):
tell application "System Events" to ¬
do shell script "kill -9 " & unix id of process "Terminal"
Tags macos terminal.app applescript