Як додати оболонки до списку Run Shell Script у Automator?


1

Якщо я вибрав запуск сценарію "Запустити оболонку" в Automator, він має випадаюче меню з можливими оболонками:

/bin/bash  
/bin/csh  
/bin/ksh  
/bin/sh  
/bin/tcsh  
/bin/zsh  
/usr/bin/perl  
/usr/bin/python  
/usr/bin/ruby  
/Users/iain/Library/Frameworks/zsh/Programs/zsh  

Я вважаю, що деякі з цих списків прийшли /etc/shells, тим більше, що він прицілився до мого користувальницького zsh наприкінці (якщо він не читає поточно обрану оболонку з іншого місця). I також мати оновлений Ruby в /opt/rubies/ruby-2.1.2/ яку я хотів би використати для цієї дії сценарію оболонки.

Хто-небудь знає, як я можу додати його до списку? Я намагався додати його /etc/shells які не працювали (і здаються жахливими). Видаляючи користувальницький zsh також зі списку!

Крім того, коли я спочатку витягую дію, моя поточна оболонка (користувальницький zsh) автоматично вибирається. Якщо я спробую використати випадаюче меню і повторно вибрати спеціальний zsh, він вибере /bin/bash замість цього і видаляє користувацький zsh зі списку. Якщо, однак, я залишу користувальницький zsh select і я збережу робочий процес і перезапустити автоматизатор, користувальницький zsh відсутній і для оболонки не вибрано оболонку.

I міг використовуйте одну з існуючих оболонок для виклику власного Ruby, але, очевидно, було б легше видалити шар перенаправлення

Будь-яка допомога з цим буде високо оцінена.

Відповіді:


1

Список цих оболонок цієї дії надходить з цього файлу PLIST - & gt; " / Система / Бібліотека / Автоматизатор / Запуск Shell Script.action / Зміст / Ресурси / Shells.plist "

Редагуйте цей файл, щоб додати інші оболонки ( потрібен пароль адміністратора )

    <key>/Users/iain/Library/Frameworks/zsh/Programs/zsh</key>
<dict>
    <key>args</key>
    <array>
        <string>-c</string>
        <string>%</string>
        <string>-</string>
    </array>
    <key>script</key>
    <array>
        <string>cat</string>
        <string>for f in "$@"&#10;do&#10;&#09;echo "$f"&#10;done</string>
    </array>
</dict>
<key>/opt/rubies/ruby-2.1.2/</key>
<dict>
    <key>args</key>
    <array>
        <string>-e</string>
        <string>%</string>
        <string>--</string>
    </array>
    <key>script</key>
    <array>
        <string>ARGF.each do |f|&#10;&#09;puts f&#10;end</string>
        <string>ARGV.each do |f|&#10;&#09;puts f&#10;end</string>
    </array>
</dict>

Будь-який спосіб зробити це без відключення SIP?
retrography
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.