Как запустить оболочку script в OS X двойным щелчком?

У меня есть оболочка script, которая имеет разрешение на выполнение пользователем на OS X, но когда я дважды нажимаю на нее, она открывается в текстовом редакторе. Как я могу запустить его, дважды щелкнув по нему?

Ответ 1

  • Сначала в терминале выполните script исполняемый файл, набрав:

    chmod a+x (yourscriptname)
    
  • Затем в Finder щелкните правой кнопкой мыши файл и выберите "Открыть с", а затем "Другое...".

  • Здесь вы выбираете приложение, в которое хотите выполнить файл, в этом случае это будет Terminal. Чтобы иметь возможность выбирать терминал, вам нужно переключиться с "Рекомендуемые приложения" на "Все приложения". (Приложение Terminal.app можно найти в папке "Утилиты" )

  • ЗАМЕЧАНИЕ: если вы не хотите связывать все файлы с этим расширением, которые будут выполняться в терминале, вы не должны отмечать флажок "Всегда открывать с".

  • После нажатия кнопки "ОК" вы сможете выполнить script, просто дважды щелкнув его.

Ответ 2

Пробовали ли вы использовать расширение файла .command?

Ответ 3

Начиная с OSX 10.10 (Yosemite) и, по крайней мере, с OS X 10.8 (Mountain Lion), поведение выглядит следующим образом, когда вы открываете (дважды щелкните) исполняемые скрипты из Finder

  • Исполняемые скрипты [1] с суффиксом NO или .command:
    • выполняется по умолчанию - не требуется настройка:
      • открывается новое окно терминала, в котором выполняется script.
      • по умолчанию окно будет оставаться открытым после завершения script, поэтому вы можете проверить вывод (хотя в тот момент оболочка, которая запускала script вышел и вы больше не можете взаимодействовать с ним).
        Однако через Terminal Preferences... > Profiles вы можете автоматически закрыть окно, когда выйдет script.
    • Caveat: рабочая папка всегда является домашней папкой текущего пользователя, а не папкой, в которой находится script.
      • Чтобы скопировать оболочку script в папку, в которой она находится, поместите
        • cd -- "$(dirname "$BASH_SOURCE")" сразу после строки shebang
        • или, если вы должны оставаться совместимым с POSIX, cd -- "$(dirname "$0")".
        • Для краевых случаев, таких как поиск символического исходного каталога script true, см. этот ответ.
    • Если script неожиданно не исполняется:
      • Сделайте его исполняемым, запустив chmod +x <script> в терминале; в противном случае вы увидите следующие симптомы:
      • .command: Finder отображает ошибочное сообщение об ошибке, указывающее на то, что проблема может быть исправлена ​​с помощью File > Get Info, что неверно - используйте метод chmod +x, предложенный выше.
      • нет суффикса:
        • с линией shebang (например, #!/bin/bash): поведение похоже на суффикс .sh - см. ниже.
        • без строки shebang: открывается в текстовом редакторе по умолчанию (по умолчанию это TextEdit).
  • Скрипты с суффиксом .sh, будь то исполняемый файл или нет:
    • открыт для редактирования в TextEdit.app или, если установлен, с Xcode.app.
  • Сценарии с суффиксом .scpt или .applescript (даже если они сами помечаются как исполняемые файлы, что обычно не так):
    • открыт для редактирования в [Apple]Script Editor
    • Обратите внимание, что файлы исходного кода JXA, похоже, не имеют отдельного суффикса (пока).
  • Сценарии с настраиваемым суффиксом (суффикс, еще не известный системе), будь то исполняемый файл или нет (на самом деле применяется к любому файлу):
    • предложите для приложения открыть их с помощью при первом открытии и запомнить этот выбор.

[1] Исполняемые средства: a script с установленными битами исполняемого разрешения, а вызывающий пользователь - относительно права собственности на файл - поэтому потенциально может быть разрешен его выполнение.
Если вы используете chmod a+x для установки всех битов разрешений (что является типичным), любой может вызвать его (при условии, что им также разрешено читать файл на основе бит (ов) разрешения на чтение и права собственности на файл).

Ответ 4

В качестве альтернативы вы можете создать обычное приложение Mac OS X из script, используя Platypus

Ответ 5

Не нужно использовать сторонние приложения, такие как Platypus.

Просто создайте Apple Script с помощью редактора Script и используйте команду do shell script "shell commands" для прямых командных вызовов или исполняемых файлов оболочки Script, сохраните файл редактируемого Script где-нибудь, затем экспортируйте его, чтобы создать приложение script. приложение Script запускается с помощью двойного щелчка или выбора в папке с парой.

Ответ 6

Простым способом является расширение расширения до .command или без расширения.

Но это откроет терминал, и вам придется закрыть его. Если вы не хотите видеть какой-либо вывод, вы можете использовать Automator для создания приложения Mac, которое вы можете дважды щелкнуть, добавить в док-станцию ​​и т.д.

  • Откройте Automator приложение
  • Выберите тип "Приложение"
  • Введите "run" в поле "Поиск действий"
  • Дважды щелкните "Run Shell Script"
  • Нажмите кнопку Run в правом верхнем углу, чтобы проверить ее.
  • File > Save для создания приложения.

введите описание изображения здесь

Ответ 7

Если вы даете расширение script a .command и выполняете chmod 777 на нем (чтобы сделать его исполняемым), он будет открываться и запускаться в терминале при двойном щелчке. src: https://discussions.apple.com/thread/2599189

Ответ 8

Некоторые люди разместили его в комментариях для других ответов:

Дублируйте свой script, затем сохраните дубликат script в качестве приложения.

теперь приложение будет запускаться при двойном щелчке.

Я обновлю этот ответ, потому что файл, который я сохранил как приложение уже предоставило разрешения chmod, и ожидающее тестирование проверит, требуется ли это или нет.

предоставило решение, которое привело к такому ответу: http://alvinalexander.com/blog/post/mac-os-x/applescript-save-script-as-application