Как настроить оболочку script для выполнения с док-станции Mac OSX? Кажется, что просто создание ярлыка откроет файл в моем редакторе. Есть ли флаг, который мне нужно, чтобы указать, чтобы он запускал его вместо того, чтобы открывать его для редактирования?
Выполнение сценариев оболочки из док-станции OS X?
Ответ 1
Вы можете создать рабочий процесс Automator с помощью одного шага - "Run Shell Script"
Затем File > Save As
и измените формат файла на "Приложение". Когда вы откроете приложение, он запустит шаг Shell Script, выполнив команду, завершив после завершения.
Преимущество этого в том, что это очень просто сделать, и вы можете очень легко получить пользовательский ввод (например, выбрав кучу файлов), а затем передать его на вкладку оболочки Script (либо на stdin, либо как аргументы).
(Automator находится в вашей папке /Applications
!)
Ответ 2
Если вам не нужно окно терминала, вы можете сделать любой исполняемый файл Приложением, переместив example.sh
в example.sh.app/Contents/MacOS/example.sh
. Вы можете поместить приложение в свою док-станцию, как и любое другое, и выполнить его одним щелчком.
Если вам нужно отобразить окно терминала, у меня нет простого решения. Возможно, вы могли бы что-то сделать с помощью Applescript, но это не очень чисто.
Ответ 3
Я знаю, что это старо, но в случае, если это полезно другим:
Если вам нужно запустить script и хотите, чтобы терминал всплывал, чтобы вы могли видеть результаты, которые вы можете сделать, как Abyss Knight, и изменить расширение на .command. Если вы дважды щелкните по нему, он откроет окно терминала и запустится.
Мне, однако, понадобилось это для запуска от automator или appleScript. Таким образом, чтобы открыть этот новый терминал, команда, которую я запускал из "run shell script", была "открыта myShellScript.command" и открылась в новом терминале.
Ответ 4
В OSX Mavericks:
- Создайте оболочку script.
-
Сделайте исполняемый файл оболочки script:
chmod +x your-shell-script.sh
-
Переименуйте script для суффикса
.app
:mv your-shell-script.sh your-shell-script.app
- Перетащите script в док-станцию OSX.
-
Переименуйте script в суффикс
.sh
:mv your-shell-script.app your-shell-script.sh
- Щелкните правой кнопкой мыши файл в Finder и выберите опцию "Получить информацию".
- В нижней части окна установите оболочку script для открытия с помощью терминала.
Теперь, когда вы нажимаете на script в доке, откроется окно терминала и выполните ваш script.
Бонус: Чтобы закрыть терминал, когда ваш script завершил, добавьте exit 0
в конец и измените настройки терминала, чтобы "закрыть оболочку, если она вышла чисто", как это говорится в этот ответ SO.
Ответ 5
Пока ваш script является исполняемым и не имеет какого-либо расширения, вы можете перетащить его как есть в правой части (сторона документа) Dock, и он будет запускаться в окне терминала при нажатии вместо открытия редактор.
Если вы хотите иметь расширение (например, foo.sh), вы можете перейти в информационное окно файла в Finder и изменить приложение по умолчанию для этого конкретного script из того, что оно есть (TextEdit, TextMate, независимо от того, установленный на вашем компьютере для файлов .sh) в Terminal. Затем он просто выполняется вместо открытия в текстовом редакторе. Опять же, вам придется перетащить его в правую сторону док-станции.
Ответ 6
Я думаю, что эта тема может быть полезна: http://forums.macosxhints.com/archive/index.php/t-70973.html
Чтобы перефразировать, вы можете переименовать его с расширением .command или создать AppleScript для запуска оболочки.
Ответ 7
В редакторе Script:
do shell script "/full/path/to/your/script -with 'all desired args'
"
Сохранить как пакет приложений.
Пока все, что вы хотите сделать, это получить эффект script, это будет работать нормально. Вы не увидите STDOUT или STDERR.
Ответ 8
Как упоминалось выше, создание оболочки script, а затем создание applescript script для вызова оболочки script, выполнит это и весьма удобно.
Shell Script
-
Создайте свою оболочку script в своем любимом текстовом редакторе, например:
mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"
(это запускает исполняемый файл w32, используя моно-структуру)
-
Сохраните оболочку script, для моего примера "StartKeepass.sh"
Apple Script
-
Откройте редактор AppleScript и вызовите оболочку Script
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 ...."
- это ваша оболочка script (полный путь), созданная на первом шаге (вы также можете запускать прямые команды, я могу опустить оболочку script и просто запустить мою моно-команду здесь) -
user name
- объявляет applescript, что вы хотите запустить команду как конкретный пользователь -
"<enter username here>
- замените свое имя пользователя (сохранение котировок) ex "josh" -
password
- объявляет о применении вашего пароля -
"<enter password here>"
- замените своим паролем (сохраняя кавычки) ex "mypass" -
with administrative privileges
- объявляет, что вы хотите запускать как admin
-
Создайте свой .APP
-
сохраните ваш applescript как filename.scpt, в моем случае RunKeepass.scpt
-
сохранить как... ваш applescript и изменить формат файла на приложение, в результате чего RunKeepass.app в моем случае
-
Скопируйте файл приложения в папку приложений
Ответ 9
Кто-то написал...
Я просто установил все файлы, которые заканчиваются на ".sh", чтобы открыть с помощью Terminal. Оно работает отлично, и вам не нужно менять имя каждой оболочки scriptхотите запустить.