У меня есть сценарий оболочки, который имеет разрешение на выполнение пользователем в OS X, но когда я дважды щелкаю по нему, он открывается в текстовом редакторе. Как я могу запустить его, дважды щелкнув по нему?
233
Сначала в терминале сделайте скрипт исполняемым, набрав:
chmod a+x (yourscriptname)
Затем в Finder щелкните правой кнопкой мыши свой файл и выберите «Открыть с помощью», а затем «Другие ...».
Здесь вы выбираете приложение, в которое хотите запустить файл, в данном случае это будет Терминал. Чтобы выбрать терминал, вам нужно переключиться с «Рекомендуемых приложений» на «Все приложения». (Приложение Terminal.app можно найти в папке Utilities)
Обратите внимание, что если вы не хотите связывать все файлы с этим расширением для запуска в терминале, вы не должны проверять «Всегда открывать с».
.command
, по умолчанию является исполняемым из Finder без необходимости указывать Finder, как его открывать..command
расширение файла.Вы пытались использовать
.command
расширение имени файла?источник
chmod +x
), но.command
расширение уже связано с терминалом. Отличное решение, спасибоПо состоянию на OSX 10.10 (Yosemite) и с тех пор по крайней мере OS X 10.8 (Mountain Lion) , поведение выглядит следующим образом, когда вы открыты (двойной щелчок) исполняемые скрипты из Finder :
.command
:Однако через терминал
Preferences... > Profiles
вы можете автоматически закрыть окно при выходе из скрипта.cd -- "$(dirname "$BASH_SOURCE")"
сразу после линии Шебангаcd -- "$(dirname "$0")"
.chmod +x <script>
в Терминале; в противном случае вы увидите следующие симптомы:.command
: Finder отображает вводящее в заблуждение сообщение об ошибке, которое предполагает, что проблема может быть исправлена с помощьюFile > Get Info
, что не соответствует действительности - используйтеchmod +x
метод, предложенный выше.#!/bin/bash
): поведение такое, как если бы суффикс был.sh
- см. ниже..sh
, исполняемые или нет:TextEdit.app
или, если он установлен, сXcode.app
..scpt
или.applescript
(даже если они сами помечены как исполняемые, что обычно не так):[Apple]Script Editor
[1] Исполняемый означает: сценарий с установленными битами разрешений на исполняемый файл и вызывающим пользователем - относительно владельца файла - следовательно, потенциально может быть исполнен.
Если вы используете
chmod a+x
для установки всех битов разрешений (что является типичным), любой может вызвать его (при условии, что им также разрешено читать файл на основе битов разрешений на чтение и владельца файла).источник
osascript
включив его в.command
файл вместо того, чтобы вручную связываться с профилем.osascript -e '...'
команды в конец сценария? Что это за конкретная команда, и гарантирует ли она, что правая вкладка закрыта, даже если скрипт не запущен на самой передней вкладке?osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
... Это может не сработать в каждом сценарии, хотя перенаправление на end - это действительно ключ - в противном случае osascript можно легко адаптировать (например, окно может потребоваться изменить на tab, если это поведение вашего терминала по умолчанию и т. д.)..command
запуска файла скрипта, несмотря на настройки профиля?bash
скрипт, добавьтеread -p 'Press Return to close this window.'
в качестве последнего утверждения.Кроме того, вы можете создать обычное приложение Mac OS X из своего скрипта с помощью Platypus
источник
Самый простой способ - изменить расширение на
.command
или без расширения.Но это откроет Терминал, и вам придется его закрыть. Если вы не хотите видеть вывод, вы можете использовать Automator для создания приложения Mac, которое вы можете дважды щелкнуть, добавить в док и т. Д.
Automator
приложениеRun
кнопку в правом верхнем углу, чтобы проверить это.File > Save
создать приложение.источник
Нет необходимости использовать сторонние приложения, такие как Platypus.
Просто создайте Apple Script с помощью Script Editor и используйте команду
do shell script "shell commands"
для прямых вызовов команд или исполняемых файлов сценариев оболочки, сохраните редактируемый файл сценария где-нибудь в безопасности и экспортируйте его для создания сценария приложения. Сценарий приложения запускается двойным щелчком или выбором в папке бара.источник
Вы также можете установить значения по умолчанию по расширению файла, используя RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
потенциально вы можете настроить .sh для открытия в iTerm / Terminal и т. д., для этого потребуются разрешения пользователя на выполнение, например,
источник
chmod 774 filename
Примечание : файл с именем 'filename', имеющий скрипт bash, не имеет расширения
источник