MacCentre
Форум: Mac и Mac OS X
Тема: Apple Script

[Ответить]
irena [25.09.2018 20:46] Apple Script:
я смотрю тут мног вумных программеров
подскажите как прописать в скрипте чтоб окно терминала после выполнения команд закрывалось

tell application "Terminal"
do script "networksetup -setnetworkserviceenabled Ethernet on
exit"
end tell
nate [25.09.2018 22:40] :
Попробуйте quit перед последней строчкой
irena [25.09.2018 22:49] :
неееее это убьет все процессы терминала. нужно имменно это конкретное окно терминала закрыть. а другие терминалы чтоб продолжали работать
Eggorka [26.09.2018 10:53] :
irena
У меня подобная задача была для shell-скриптов. Я сделал небольшой скрипт в AppleScript.
tell application "Terminal"
if (count of (every window whose visible is true)) ≤ 1 then
quit
else
close window 1
end if
end tell
Затем сохранил его в как приложение MyExitTerminal.app. И в конце терминального скрипта пишу
open "~/My Scripts/MyExitTerminal.app"
Да, забыл уточнить. У меня была задача закрывать окно Терминала, если открыто несколько, а если открыто только одно окно, то выйти из Терминала.
irena [26.09.2018 16:03] :
нормуль, попробую
irena [01.10.2018 23:02] :
tell application "Terminal"
do script "networksetup -setnetworkserviceenabled Ethernet on
exit"
end tell
tell application "/Library/Scripts/Mac Scripts/MyExitTerminal.app"
run
end tell

переделал вот так спрашивает теперь подверждения, как его убрать?
с open не получилось так как идет привязка к fastscrits а оно пишет что app не может загрузить
[К сообщению приложены файлы: Screen Shot 2018-10-01 at 22.59.40.png (44 кб)]
irena [01.10.2018 23:03] :
Eggorka

погляди
Eggorka [02.10.2018 06:38] :
irena
Повторюсь, вызов приложения я осуществляю из терминального скрипта, а не из AppleScript. В AppleScript не нужно делать приложение, достаточно первой части.
irena [02.10.2018 10:31] :
tell application "Terminal"
do script "networksetup -setnetworkserviceenabled Ethernet on
exit"
end tell
tell application "Terminal"
if (count of (every window whose visible is true)) ≤ 1 then
quit
else
close window 1
end if
end tell

вроде работает
[Ответить]