Да, Automator - лучший вариант здесь. Чтобы создать сервис, выполните следующие действия:
Откройте Automator и выберите Сервис:
Найдите «applecript» и перетащите действие на правую панель:
Измените Service receives selected text
на Service receives no input
так, чтобы это всегда появлялось в меню Сервисов:
Заменить (* Your script goes here *)
на:
do shell script "/usr/bin/osascript /path/to/your/script.scpt"
если вы хотите выполнить существующий .scpt
файл. Обратите внимание, что osascript не может обрабатывать взаимодействие с пользователем, например отображение диалогового окна:
Чтобы преодолеть это ограничение, используйте этот обходной путь или просто замените (* Your script goes here *)
его содержимым.
Сохрани это:
Если вы хотите, вы можете назначить ярлык для вашего нового сервиса. Выберите «Службы»> «Настройки служб» в Finder (или в любом открытом приложении):
Назначьте не очень распространенное сокращение:
Теперь ваш сервис доступен из любого приложения через ярлык, назначенный на предыдущем шаге:
Если вы когда-нибудь захотите избавиться от открытого сервиса ~/Library/Services
, удалите сервис и очистите корзину:
osascript
, как объяснено в других ответах.osascript
в Automator для запуска вашего.scpt
файла, ограничение и два обходных пути.osascript
нужно 4 дополнительных секунды для выполнения вашего скрипта, но Automator не является причиной задержки, которая была моей заботой. Вы можете отлаживатьosascript
, см. Opensourcehacker.com/2011/12/02/… и stackoverflow.com/questions/31045575/…В сценарии добавьте
on run
аргумент:Затем вы можете использовать действие Automator «Run Shell Script» с
osascript
командой:osascript
это команда, которая выполняет AppleScript в оболочке Вам нужны строки в скрипте, чтобы скрипт мог выполняться вне редактора AppleScript.источник
on run {input, arguments}
форму, но даже в Automator вы можете просто удалить обработчик запуска.Возможно, вы захотите взглянуть на этот сервис , который позволяет «создавать сервисы Mac OS X из любого скрипта».
источник
Я бы не рекомендовал создавать службы Automator для назначения ярлыков сценариям. В 10.7 и 10.8 есть ошибка, когда сочетания клавиш для служб Automator не всегда работают, пока вы не наведете курсор мыши на меню служб в строке меню. Существует также относительно длительная (возможно, от 0,1 до 1 с) задержка до запуска служб.
Посмотрите этот ответ о других способах назначения сочетаний клавиш для сценариев. Я использую FastScripts и Альфред сам.
источник
Вы можете запустить существующий скрипт с помощью простого сервиса автоматизации, подобного этому. И назначьте ярлык из сочетания клавиш как обычно. Просто помните, что некоторые приложения, возможно, потребуется перезапустить, прежде чем они подберут ярлыки.
пример.
сценарий sayHello:
Сервис автоматов:
Который в этом примере использует:
Действие - это скрипт запуска оболочки. В коде просто используется команда osascript unix и путь к файлу. Передать ввод можно в stdn или в аргумент
В этом нет ничего особенного, что нужно сделать со сценарием.
Для получения более подробной информации о команде osascript посмотрите справочные страницы по ней. Страница man дает другой пример, где вы можете передать аргументы скрипту.
источник
Для разработки Сервиса вам необходимо какое-то программное обеспечение, которое будет создавать Сервис, например, одно из следующих:
Все вышеперечисленные виды услуг являются пакетами. Все они представляют собой папки, которые содержат список, который определяет атрибуты Сервиса.
Вот как я создал Сервис, используя Automator, который использует действие Automator «Запуск AppleScript» для вызова существующего .script.
источник