У меня есть оболочка 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 вышел и вы больше не можете взаимодействовать с ним).
Однако через TerminalPreferences... > Profiles
вы можете автоматически закрыть окно, когда выйдет script.
- Caveat: рабочая папка всегда является домашней папкой текущего пользователя, а не папкой, в которой находится script.
- Чтобы скопировать оболочку script в папку, в которой она находится, поместите
-
cd -- "$(dirname "$BASH_SOURCE")"
сразу после строки shebang - или, если вы должны оставаться совместимым с POSIX,
cd -- "$(dirname "$0")"
. - Для краевых случаев, таких как поиск символического исходного каталога script true, см. этот ответ.
-
- Чтобы скопировать оболочку script в папку, в которой она находится, поместите
- Если script неожиданно не исполняется:
- Сделайте его исполняемым, запустив
chmod +x <script>
в терминале; в противном случае вы увидите следующие симптомы: -
.command
: Finder отображает ошибочное сообщение об ошибке, указывающее на то, что проблема может быть исправлена с помощьюFile > Get Info
, что неверно - используйте методchmod +x
, предложенный выше. - нет суффикса:
- с линией shebang (например,
#!/bin/bash
): поведение похоже на суффикс.sh
- см. ниже. - без строки shebang: открывается в текстовом редакторе по умолчанию (по умолчанию это TextEdit).
- с линией shebang (например,
- Сделайте его исполняемым, запустив
- выполняется по умолчанию - не требуется настройка:
- Скрипты с суффиксом
.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