Automator: при выполнении действия «Выполнить сценарий оболочки» произошла ошибка: невозможно выполнить двоичный файл - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь запустить приложение командной строки через Automator «Run Shell Script» для выбранных файлов / папок в Finder как QuickAction / Service в OS X 10.14 Mohave.

Problem Automator shell script

Я продолжаю получать 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 есть серьезная ошибка), но я просто не вижу этого.

Этот скрипт работает нормально, хотя:

Working Automator shell script

...