Как подавить окно терминала при запуске скрипта bash из Spotlight?

234
JRobert

Когда я запускаю bash-скрипт из Spotlight, открывается окно терминала для его выполнения. Окно закрывается, когда скрипт завершается, но я бы хотел, чтобы это окно вообще не появлялось на моем рабочем столе.

Сценарий имеет несколько вариантов (в одном и том же сценарии) и, как и grep, использует имя запуска $ 0 для выбора параметров. Он добавляет некоторые данные в файл и открывает редактор (emacs, хотя это не имеет значения) для файла, поэтому единственным окном, которое мне нужно для взаимодействия, является редактор.

Прямо сейчас, единственные издержки на вариант - это жесткая ссылка на скрипт. Я бы предпочел не использовать приложения Platypus или AppleScript для запуска его / их, так как тогда мне понадобится целый пакет для каждого варианта. Я просто хотел бы, чтобы терминал работал без отображения окна.

1

1 ответ на вопрос

0
JRobert

Оказалось, что Spotlight не индексирует все жесткие ссылки на файл - только одну из них - так что этот подход в любом случае терпит неудачу.

Симлинки вообще не индексируются, так что поцарапайте.

Псевдонимы OS-X индексируются, но запущенный экземпляр целевого скрипта запускается с оригинальным именем скрипта - он не получает информации о том, какая ссылка его запустила.

Я остановился на использовании одного сценария bash для каждого варианта, который просто запускает основной сценарий с соответствующими аргументами, работающий в фоновом режиме:

$ mainscript <args> & 

Окно терминала, на котором выполняется вспомогательный сценарий, мигает только достаточно долго, чтобы запустить основной сценарий в фоновом режиме. Это выполняет то, что мне нужно.

Похожие вопросы