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

问题描述 投票:0回答:1

我正在尝试通过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

shell automator
1个回答
0
投票

我遇到了同样的问题。

也许这将有助于解释原因

Grant “Full Disk Access” to Workflows run via the Services menu

© www.soinside.com 2019 - 2024. All rights reserved.