Похоже, я нашел ответ на свой вопрос
tell application "Terminal" quit tell application "System Events" keystroke return end tell end tell
Я пытаюсь принудительно завершить работу моего Terminal.app с помощью Apple Script Editor.
tell application "Terminal" quit end tell tell application "System Events" key code 53 end tell
Это не похоже на работу. Как можно поступить и сделать это?
Похоже, я нашел ответ на свой вопрос
tell application "Terminal" quit tell application "System Events" keystroke return end tell end tell
Отправка quit
команды и a keystroke
не означает принудительное завершение. Я предполагаю, что решение, на котором вы остановились, похоже, сработало просто потому, что после выдачи quit
команды я предполагаю, что появилось диалоговое окно с вопросом, хотите ли вы принудительно выйти из Терминала . Нажатие Enter- физически или программно - затем выберет предложенную вам опцию принудительного выхода.
Проблема с программной отправкой нажатия клавиши состоит в том, что, если фокус неожиданно переключается на другое окно в вашей системе, нажатие клавиши будет отправлено не в то окно.
Один из добросовестных методов принудительного выхода из приложения из AppleScript - получить его PID, а затем выполнить kill
команду через скрипт оболочки. На самом деле это всего лишь одна строка кода. Вот как бы это выглядело, когда используется для решения вашей ситуации (для удобства чтения отформатирован в две строки):
tell application "System Events" to ¬ do shell script "kill -9 " & unix id of process "Terminal"