我正在尝试通过 Automator“运行 Shell 脚本”在 Finder 中的选定文件/文件夹上运行命令行应用程序作为 OS X 10.14 Mohave 中的 QuickAction/Service。
我不断收到 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 脚本虽然工作正常:
最佳答案
您可能需要进入“安全和隐私”系统首选项并授予 Automator 完整磁盘访问权限。
关于shell - Automator:操作 “Run Shell Script” 遇到错误:无法执行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55350151/