自动器:“运行Shell脚本”操作遇到错误:无法执行二进制文件

时间:2019-03-26 05:03:01

标签: shell automator

我正在尝试通过Automator“运行Shell脚本”在Finder中的选定文件/文件夹上以OS X 10.14 Mohave中的QuickAction / Service形式运行命令行应用程序。

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 shell脚本,但从未遇到此错误。

我已经阅读了在[Automator] [shell]上可以找到的每个问题,并且“ Automator遇到错误:无法执行二进制文件”,并且无法找到解决方案。

我添加了path语句以确保可执行文件在路径中。最好的解决方案似乎是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

shell脚本中的相同代码可以完美执行。

参数是错误的事实使我相信,问题不是脚本。我已经通过不带其他参数的帮助开关进行了测试:

#!/usr/bin/env bash
source ~/.bash_profile
artest -h

但是会出现相同的错误。

我更喜欢将所有参数传递给artest,因为它是多线程的,但是我尝试遍历这些参数:

for f in "$@"
do

并基于另一个问题,为了测试所有可能想到的内容,我省略了所有明确的参数:

for f
do

尽管这在早期的Automator工作流程中仍然有效(请参见下文),但我失败并出现相同的错误。

尽管我以前的shell脚本工作流在没有一个脚本工作流的情况下也能正常运行,但我尝试根据此处的其他问题添加shebang语句。我假设这已经在上面的shell选择菜单中涵盖了,例如“ / bin / bash”

我读过一些问题,它们指出“运行Shell命令”与在终端中运行不同,但是老实说,当我的工作流来自以前的OS(和Automator)时,我找不到解决方案,也无法在10.14中执行操作)版本继续正常运行。

我感觉这里缺少基本的东西(或者新的Automator版本中存在一个重大错误),但是我看不到它。

此shell脚本可以正常运行:

Working Automator shell script

1 个答案:

答案 0 :(得分:0)

您可能需要进入“安全和隐私”系统首选项并授予 Automator 完整磁盘访问权限。