shell - Automator:操作 “Run Shell Script” 遇到错误:无法执行二进制文件

标签 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 遇到错误:无法执行二进制文件”并且无法找到解决方案。

我添加了路径语句以确保可执行文件在路径中。最好的解决方案似乎是 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 工作流程中仍然有效(见下文),但我因同样的错误而失败。

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

我读过一些问题,其中指出“运行 Shell 命令”与在终端中运行不同,但老实说,我找不到解决方案,10.14 中编写的操作也无法正常工作,而我以前的操作系统(和 Automator)版本的服务工作流继续运行工作正常。

我觉得我在这里遗漏了一些基本的东西(或者新的 Automator 版本中有一个主要的错误),但我就是看不到它。

这个 shell 脚本虽然工作正常:

Working Automator shell script

最佳答案

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

关于shell - Automator:操作 “Run Shell Script” 遇到错误:无法执行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55350151/

相关文章:

bash - 别名在脚本中丢失

apache-poi - 尝试将我的 excel 测试用例覆盖到 testing-xml 时出现以下错误

mysql - 在 MySQL 查询完成之前,Automator 发送带有不完整表的电子邮件

bash - Shell脚本语法错误: unexpected end of line

c - clang 选项的别名?

c - 产生了一个 bash shell。 shell 死了但 pipe 没坏?

Bash:在执行 bash 之前等待产生的子进程

macos - Automator 未正确过滤过去 7 天内修改的文件

applescript - 使用 Applescript/Automator 检查事件的互联网连接