Tak, Automator jest tutaj najlepszą opcją. Aby utworzyć usługę, wykonaj następujące kroki:
Otwórz Automator i wybierz Usługa:
Wyszukaj „applecript” i przeciągnij akcję do prawego panelu:
Zmień Service receives selected text
na, Service receives no input
aby zawsze pojawiał się w menu Usługi:
Zamień na (* Your script goes here *)
:
do shell script "/usr/bin/osascript /path/to/your/script.scpt"
jeśli chcesz wykonać istniejący .scpt
plik. Zauważ, że osascript nie może obsłużyć interakcji użytkownika, takich jak wyświetlanie okna dialogowego:
Aby obejść to ograniczenie, skorzystaj z tego obejścia lub po prostu zamień (* Your script goes here *)
zawartość skryptu.
Zapisz to:
Jeśli chcesz, możesz przypisać skrót do nowej usługi. Wybierz Usługi> Preferencje usług w Finderze (lub dowolnej otwartej aplikacji):
Przypisz nie tak powszechny skrót:
Teraz twoja usługa jest dostępna z dowolnej aplikacji za pomocą skrótu przypisanego w poprzednim kroku:
Jeśli kiedykolwiek chcesz pozbyć się usługi otwartej ~/Library/Services
, usuń usługę i opróżnij kosz:
osascript
, jak wyjaśniono w innych odpowiedziach.osascript
w Automatorze, aby uruchomić.scpt
plik, ograniczenie i dwa obejścia.osascript
potrzeba 4 dodatkowych sekund na wykonanie skryptu, ale Automator nie jest przyczyną opóźnienia, co było moim zmartwieniem. Możesz chcieć debugowaćosascript
, zobacz opensourcehacker.com/2011/12/02/... i stackoverflow.com/questions/31045575/…W skrypcie dodaj
on run
argument:Następnie możesz użyć akcji Automatora „Uruchom skrypt powłoki” za pomocą
osascript
polecenia:osascript
to polecenie, które wykonuje AppleScript w powłoce. Potrzebujesz wierszy w skrypcie, aby skrypt mógł być wykonywany poza edytorem AppleScript.źródło
on run {input, arguments}
formularza, ale nawet w Automatorze możesz po prostu usunąć procedurę obsługi.Być może warto rzucić okiem na tę usługę , która pozwala „tworzyć usługi Mac OS X z dowolnego skryptu”.
źródło
Nie polecałbym tworzenia usług Automatora w celu przypisywania skrótów do skryptów. W wersjach 10.7 i 10.8 występuje błąd, w którym skróty klawiaturowe dla usług Automatora nie zawsze działają, dopóki nie najedziesz myszą na menu usług z paska menu. Występuje również stosunkowo długie (może 0,1 do 1 s) opóźnienie przed uruchomieniem usług.
Zobacz tę odpowiedź, aby poznać inne sposoby przypisywania skrótów klawiaturowych do skryptów. Sam używam FastScripts i Alfred.
źródło
Możesz URUCHOMIĆ istniejący skrypt za pomocą prostej usługi automatyzującej, takiej jak ta. I przypisuj skrót z poziomu skrótów klawiaturowych jak zwykle. Pamiętaj tylko, że niektóre aplikacje mogą wymagać ponownego uruchomienia przed wybraniem skrótów.
przykład.
skrypt hello:
Usługa Automatora:
Który w tym przykładzie używa:
Akcja jest uruchomionym skryptem powłoki W kodzie użyto po prostu uniksowego polecenia osascript i ścieżki do pliku. Przekazanie danych wejściowych może być standardowe lub argument
To nic specjalnego do skryptu.
Więcej informacji na temat polecenia osascript można znaleźć na stronach podręcznika użytkownika . Strona man podaje kolejny przykład, w którym można przekazać argumenty do skryptu.
źródło
Aby opracować Usługę, potrzebujesz oprogramowania, które utworzy Usługę, takiego jak jedno z następujących:
Wszystkie powyższe rodzaje usług są pakietami. Wszystkie są folderami zawierającymi plist, który określa atrybuty usługi.
Oto jak utworzyłem usługę za pomocą Automatora, który używa akcji Automatora „Uruchom AppleScript”, aby wywołać istniejący skrypt.
źródło