Выполнение сценариев оболочки из док-станции OS X?
Как настроить сценарий оболочки для выполнения из док-станции Mac OSX? Кажется, что просто создание ярлыка откроет файл в моем редакторе. Есть ли флаг, который мне нужно установить где-то, чтобы сказать ему работать, а не открывать его для редактирования?
9 ответов:
вы можете создать рабочий процесс Automator с одним шагом - "Run Shell Script"
затем
File > Save Asи измените формат файла на "приложения". Когда вы открываете приложение, оно запускает шаг сценария оболочки, выполняя команду, выходя после ее завершения.преимущество в том, что это действительно просто сделать, и вы можете очень легко получить пользовательский ввод (скажем, выбрав кучу файлов), а затем передать его на вход скрипта оболочки (либо stdin, или как аргументы).
(Automator находится в вашем
/Applicationsпапка!)
Если вам не нужно окно терминала, вы можете сделать любой исполняемый файл приложения просто путем перемещения
example.shдоexample.sh.app/Contents/MacOS/example.sh. Вы можете разместить приложение в док-станции, как и любой другой, и выполнить его с щелчком мыши.Если вам нужно, чтобы окно терминала отображалось, у меня нет простого решения. Возможно, вы могли бы что-то сделать с Applescript, но это не очень чисто.
Я знаю, что это старый, но в случае, если это полезно для других:
Если вам нужно запустить скрипт и хотите, чтобы терминал всплывал, чтобы вы могли видеть результаты, которые вы можете сделать, как сказал Abyss Knight, и изменить расширение.команда. Если вы дважды щелкните на нем он откроет окно терминала и запустить.
однако мне нужно было это запустить из automator или appleScript. Поэтому, чтобы получить это, чтобы открыть новый терминал, команда, которую я запускал из "run Shell script", была " открыта myShellScript.команда" и он открылся в новом терминале.
на OSX Mavericks:
- создайте свой сценарий оболочки.
сделайте свой сценарий оболочки исполняемым:
chmod +x your-shell-script.shпереименуйте свой скрипт, чтобы иметь
.appсуффикс:mv your-shell-script.sh your-shell-script.app- перетащите скрипт в док-станцию OSX.
переименуйте свой скрипт обратно в
.shсуффикс:mv your-shell-script.app your-shell-script.sh- щелкните правой кнопкой мыши файл в Finder и выберите опцию "получить информацию".
- в в нижней части окна установите сценарий оболочки для открытия с помощью терминала.
теперь, когда вы нажимаете на скрипт в доке, появится окно терминала и выполнит ваш скрипт.
бонус: чтобы закрыть терминал после завершения работы скрипта, добавьте
exit 0до конца и изменить настройки терминала ,чтобы "закрыть оболочку, если вышел чисто", как он говорит, чтобы сделать в это так ответ.
пока ваш скрипт является исполняемым и не имеет расширения, вы можете перетащить его как есть на правую сторону (сторону документа) док-станции, и он будет работать в окне терминала при нажатии вместо открытия редактора.
Если вы хотите иметь расширение (например foo.sh), вы можете перейти в окно информации о файле в Finder и изменить приложение по умолчанию для этого конкретного скрипта из любого (TextEdit, TextMate, независимо от того, что по умолчанию установлено на вашем компьютере для файлов .sh) в Терминал. Затем он будет просто выполняться вместо открытия в текстовом редакторе. Опять же, вам придется перетащить его в правую часть Дока.
Я думаю, что эта тема может быть полезна:http://forums.macosxhints.com/archive/index.php/t-70973.html
перефразируя, вы можете переименовать его .расширение команды или создать AppleScript для запуска оболочки.
как упоминал Джо, создание сценария оболочки, а затем создание сценария applescript для вызова сценария оболочки, выполнит это и довольно удобно.
Скрипт
создать свой скрипт в вашем любимом текстовом редакторе, например:
mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"(это запускает исполняемый файл w32, используя Mono framework)
сохранить сценарий оболочки, для моего примера "StartKeepass.sh"
Apple Script
откройте редактор 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- объявляет, что вы хотите работать как администраторСоздать Свой .Приложение
сохранить applescript как имя файла.scpt, в моем случае RunKeepass.scpt
сохранить как... ваш applescript и измените формат файла на application, что приведет к RunKeepass.приложение в моем случае
скопируйте файл приложения в папку приложения
в Редакторе скриптов:
do shell script "/full/path/to/your/script -with 'all desired args'"Сохранить как пакет приложений.
пока все, что вы хотите сделать, это получить эффект скрипт будет работать нормально. Вы не увидите STDOUT или STDERR.
кто-то писал...
Я просто установил все файлы, которые заканчиваются на". sh", чтобы открыть с помощью терминала. Это работает хорошо и вам не придется менять имя каждого сценария оболочки хотите побежать.

Comments