Я пытаюсь запустить приложение командной строки через Automator «Run Shell Script» для выбранных файлов / папок в Finder как QuickAction / Service в OS X 10.14 Mohave.
Я продолжаю получать The action “Run Shell Script” encountered an error: “/Users/me/test/test1.zip: /Users/me/test/test1.zip: cannot execute binary file”
для любых выбранных предметов. Выбранный каталог возвращает : Is a directory
в конце.
В прошлом я писал подобные сценарии оболочки Automator и никогда не сталкивался с этой ошибкой.
Я прочитал все вопросы, которые смог найти на [Automator]
[shell]
, и «Automator обнаружил ошибку: не удалось выполнить двоичный файл» и не может найти решение.
Я добавил оператор пути, чтобы убедиться, что исполняемый файл находится в пути. Лучшее решение, похоже, source ~/.bash_profile
, но я тоже попробовал export PATH=/usr/local/bin:$PATH
.
Исполняемый файл имеет соответствующие разрешения и находится в пути:
→ wl artest
/usr/local/bin/artest
-rwxr-xr-x 1 me admin 14004618 Mar 25 20:46 /usr/local/bin/artest
Тот же код в сценарии оболочки выполняется отлично.
Тот факт, что аргументы являются ошибкой, заставляет меня поверить, что проблема не в сценарии. Я проверил это, используя переключатель справки без других аргументов:
#!/usr/bin/env bash
source ~/.bash_profile
artest -h
Но получите те же ошибки.
Я предпочитаю передавать все аргументы в artest, поскольку он многопоточный, но я попытался перебрать аргументы:
for f in "$@"
do
и основываясь на другом вопросе, и для проверки всего, что я мог придумать, я пропустил явные аргументы:
for f
do
Хотя это все еще работает в более ранних рабочих процессах Automator (см. Ниже), я терплю неудачу с той же ошибкой.
Я попытался добавить операторы shebang, основываясь на других вопросах, здесь, хотя мои предыдущие рабочие процессы сценариев оболочки работают без них. Я предполагал, что это было описано выше в меню выбора оболочки, например "/ Бен / Баш"
Я читал вопросы, в которых говорится, что «Run Shell Command» не то же самое, что запуск в терминале, но, честно говоря, я не смог найти решение, и действия, составленные в 10.14, не работают, пока рабочие процессы моих служб из предыдущей ОС (и Automator) ) версия продолжает работать нормально.
Мне кажется, что я упускаю что-то базовое здесь (или в новой версии Automator есть серьезная ошибка), но я просто не вижу этого.
Этот скрипт работает нормально, хотя: