Как создать сервис osx, который передает имя своего сервиса скрипту оболочки?
Я создаю сервис OSX с Automator, чтобы показать элементы контекстного меню для файла, например, как Dropbox показывает меню ниже.
Я понимаю, что это не сервисы OSX, но я хотел бы сделать то же самое с сервисами OSX. Поэтому я создал 2 службы osx, используя automator для файлов и папок в Finder.app, и добавил к нему действие сценария оболочки.
Теперь я мог видеть все свои 2 услуги (поделиться с a, поделиться с b) в контекстном меню, как показано ниже
Из скрипта оболочки (действия для этих сервисов) запускаю приложение. Я хотел запустить приложение, указав путь к файлу и имя службы в виде двух аргументов командной строки.
Любая идея, как получить имя службы выбранного пользователем сервиса внутри сценария оболочки, как мы получаем имя файла из параметра командной строки "$@"
1 ответ
"По сути, моя цель - открыть браузер с URL-адресом, который отличается для каждого пункта меню".
Что-то вроде следующего AppleScript можно использовать для открытия URL-адреса в веб-браузере по умолчанию, используя AppleScript:
tell application "Finder" to open location "http://learnbymac.com"
Для открытия URL из оболочки можно использовать что-то вроде следующего скрипта оболочки:
open -a "Finder" "http://learnbymac.com"
Использование Finder для открытия URL-адресов лучше, чем использование Safari, потому что, когда вы используете Finder для открытия URL-адресов, вы получаете браузер по умолчанию, а не всегда Safari.
"Я запусту приложение / exe из сценария оболочки, передав путь к имени файла и службы, чтобы приложение могло создать URL-адрес на основе имени службы, прочитав сведения о файле из базы данных и загрузив URL-адрес в браузере."
Возможно, вам придется указать имя вашей службы в действии рабочего процесса "Выполнить сценарий оболочки" при запуске приложения. В любом случае это может быть лучше, потому что тогда, если пользователь изменит название Сервиса, ваше программное обеспечение все равно будет работать. Я знаю, что было бы идеально, если бы не дублировалось имя Сервиса, имеющее его один раз в комплекте рабочего процесса и снова в вашем действии "Выполнить сценарий оболочки", но я не знаю, как получить имя работающей в данный момент Сервиса.
- Кейделл
http://mailto%3Akaydell@yahoo.com/