Принудительно завершите работу Terminal.app с помощью Apple Script Editor.

1136
kyo

Я пытаюсь принудительно завершить работу моего Terminal.app с помощью Apple Script Editor.

tell application "Terminal" quit end tell  tell application "System Events" key code 53 end tell 

Это не похоже на работу. Как можно поступить и сделать это?

0

2 ответа на вопрос

0
kyo

Похоже, я нашел ответ на свой вопрос

tell application "Terminal" quit tell application "System Events" keystroke return end tell end tell 
0
CJK

Отправка quitкоманды и a keystrokeне означает принудительное завершение. Я предполагаю, что решение, на котором вы остановились, похоже, сработало просто потому, что после выдачи quitкоманды я предполагаю, что появилось диалоговое окно с вопросом, хотите ли вы принудительно выйти из Терминала . Нажатие Enter- физически или программно - затем выберет предложенную вам опцию принудительного выхода.

Проблема с программной отправкой нажатия клавиши состоит в том, что, если фокус неожиданно переключается на другое окно в вашей системе, нажатие клавиши будет отправлено не в то окно.

Один из добросовестных методов принудительного выхода из приложения из AppleScript - получить его PID, а затем выполнить killкоманду через скрипт оболочки. На самом деле это всего лишь одна строка кода. Вот как бы это выглядело, когда используется для решения вашей ситуации (для удобства чтения отформатирован в две строки):

 tell application "System Events" to ¬ do shell script "kill -9 " & unix id of process "Terminal"