Могу ли я использовать скрипт bash в качестве службы в OS X без необходимости настраивать его через автомат?

3

Как я могу использовать сценарий bash в качестве службы в OS X без необходимости настраивать его через автоматизатор? Я бы хотел написать скрипт bash, сохранить его в ~ / Library / Services, а затем просто показать его в меню services. Мысли?

УХО
источник
macТег для вопросов о Mac аппаратного обеспечения . Пока osxтег для софта . Выберите один или другой.
Вуфферс

Ответы:

4

ThisService немного более оптимизирован, чем Automator:

thisservice


Встроенное меню сценариев также можно использовать для запуска сценариев оболочки:

Скрипты меню сценариев

Его можно включить из утилиты AppleScript - «Настройки» - «Показать сценарий» в строке меню . Он включает файлы в ~ / Library / Scripts / и, опционально, / Library / Scripts /. Тем не менее, вы не можете назначать ярлыки - это главная причина, по которой вместо этого следует использовать FastScripts .


Некоторые приложения для назначения ярлыков: osx - привязать ключ к команде командной строки в Mac OS X? - Супер пользователь .

LRI
источник
Знаете ли вы, действительно ли он отличается от сервиса Automator (например, работает лучше), или это просто другая реализация той же идеи / другого графического интерфейса? Это можно автоматизировать или контролировать из командной строки?
Даниэль Бек
1

Вы должны рассмотреть попробовать FastScripts . Это похоже на правильное меню скриптов в OS X, включая сочетания клавиш для быстрого доступа.

Даниэль Бек
источник
0

Я не знаю, как сделать это напрямую. Помимо Automator, вы также можете использовать XCode для создания оболочки AppleScript для вашего скрипта, который будет работать как Сервис.

Использование сценария напрямую более проблематично. Насколько я понимаю, это должен быть комплект приложений, а затем ему нужны конкретные записи, которые Info.plistсообщают системе, какую службу он предлагает. Первое может быть сделано с Утконосом ; для последнего используйте редактор списка свойств в XCode (или plutilXML-редактор, если вам не нравится играть непосредственно с XML), чтобы создать NSServicesключ.

Это оставляет довольно большой вопрос о том, как вызвать его; сообщение Objective C, созданное из NSServicesключа NSMessage, не будет восприниматься непосредственно оболочкой, и похоже, что у Platypus также нет способа получить его. Я подозреваю, что это означает написание пользовательской оболочки в Objective-C.

geekosaur
источник