Выполнение сценариев оболочки из док-станции OS X?



Как настроить сценарий оболочки для выполнения из док-станции Mac OSX? Кажется, что просто создание ярлыка откроет файл в моем редакторе. Есть ли флаг, который мне нужно установить где-то, чтобы сказать ему работать, а не открывать его для редактирования?

648   9  

9 ответов:

вы можете создать рабочий процесс Automator с одним шагом - "Run Shell Script"

затем File > Save As и измените формат файла на "приложения". Когда вы открываете приложение, оно запускает шаг сценария оболочки, выполняя команду, выходя после ее завершения.

преимущество в том, что это действительно просто сделать, и вы можете очень легко получить пользовательский ввод (скажем, выбрав кучу файлов), а затем передать его на вход скрипта оболочки (либо stdin, или как аргументы).

(Automator находится в вашем /Applications папка!)

Example workflow

Если вам не нужно окно терминала, вы можете сделать любой исполняемый файл приложения просто путем перемещения example.sh до example.sh.app/Contents/MacOS/example.sh. Вы можете разместить приложение в док-станции, как и любой другой, и выполнить его с щелчком мыши.

Если вам нужно, чтобы окно терминала отображалось, у меня нет простого решения. Возможно, вы могли бы что-то сделать с Applescript, но это не очень чисто.

Я знаю, что это старый, но в случае, если это полезно для других:

Если вам нужно запустить скрипт и хотите, чтобы терминал всплывал, чтобы вы могли видеть результаты, которые вы можете сделать, как сказал Abyss Knight, и изменить расширение.команда. Если вы дважды щелкните на нем он откроет окно терминала и запустить.

однако мне нужно было это запустить из automator или appleScript. Поэтому, чтобы получить это, чтобы открыть новый терминал, команда, которую я запускал из "run Shell script", была " открыта myShellScript.команда" и он открылся в новом терминале.

на OSX Mavericks:

  1. создайте свой сценарий оболочки.
  2. сделайте свой сценарий оболочки исполняемым:

    chmod +x your-shell-script.sh
    
  3. переименуйте свой скрипт, чтобы иметь .app суффикс:

    mv your-shell-script.sh your-shell-script.app
    
  4. перетащите скрипт в док-станцию OSX.
  5. переименуйте свой скрипт обратно в .sh суффикс:

    mv your-shell-script.app your-shell-script.sh
    
  6. щелкните правой кнопкой мыши файл в Finder и выберите опцию "получить информацию".
  7. в в нижней части окна установите сценарий оболочки для открытия с помощью терминала.

теперь, когда вы нажимаете на скрипт в доке, появится окно терминала и выполнит ваш скрипт.

бонус: чтобы закрыть терминал после завершения работы скрипта, добавьте exit 0 до конца и изменить настройки терминала ,чтобы "закрыть оболочку, если вышел чисто", как он говорит, чтобы сделать в это так ответ.

пока ваш скрипт является исполняемым и не имеет расширения, вы можете перетащить его как есть на правую сторону (сторону документа) док-станции, и он будет работать в окне терминала при нажатии вместо открытия редактора.

Если вы хотите иметь расширение (например foo.sh), вы можете перейти в окно информации о файле в Finder и изменить приложение по умолчанию для этого конкретного скрипта из любого (TextEdit, TextMate, независимо от того, что по умолчанию установлено на вашем компьютере для файлов .sh) в Терминал. Затем он будет просто выполняться вместо открытия в текстовом редакторе. Опять же, вам придется перетащить его в правую часть Дока.

Я думаю, что эта тема может быть полезна:http://forums.macosxhints.com/archive/index.php/t-70973.html

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

как упоминал Джо, создание сценария оболочки, а затем создание сценария applescript для вызова сценария оболочки, выполнит это и довольно удобно.

Скрипт

  1. создать свой скрипт в вашем любимом текстовом редакторе, например:

    mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"

    (это запускает исполняемый файл w32, используя Mono framework)

  2. сохранить сценарий оболочки, для моего примера "StartKeepass.sh"

Apple Script

  1. откройте редактор AppleScript и вызовите сценарий оболочки

    do shell script "sh /Volumes/Media/~Users/me/Software/StartKeepass.sh" user name "<enter username here>" password "<Enter password here>" with administrator privileges

    • do shell script - команда applescript для вызова команд внешней оболочки
    • "sh ...." - Это ваш сценарий оболочки (полный путь), созданный на первом шаге (вы также можете запускать прямые команды, я мог бы опустить сценарий оболочки и просто запустить мою команду mono здесь)
    • user name - объявляет applescript, что вы хотите запустить команду от имени конкретного пользователя
    • "<enter username here> - замените своим именем пользователя (сохраняя кавычки) ex "josh"
    • password - объявляет applescript свой пароль
    • "<enter password here>" - замените свой пароль (сохраняя кавычки) ex "mypass"
    • with administrative privileges - объявляет, что вы хотите работать как администратор

Создать Свой .Приложение

  1. сохранить applescript как имя файла.scpt, в моем случае RunKeepass.scpt

  2. сохранить как... ваш applescript и измените формат файла на application, что приведет к RunKeepass.приложение в моем случае

  3. скопируйте файл приложения в папку приложения

в Редакторе скриптов:

do shell script "/full/path/to/your/script -with 'all desired args'"

Сохранить как пакет приложений.

пока все, что вы хотите сделать, это получить эффект скрипт будет работать нормально. Вы не увидите STDOUT или STDERR.

кто-то писал...

Я просто установил все файлы, которые заканчиваются на". sh", чтобы открыть с помощью терминала. Это работает хорошо и вам не придется менять имя каждого сценария оболочки хотите побежать.

Comments

    Ничего не найдено.