我正在尝试通过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遇到错误:无法执行二进制文件”,并且无法找到解决方案。
我添加了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脚本可以正常运行:
答案 0 :(得分:0)
您可能需要进入“安全和隐私”系统首选项并授予 Automator 完整磁盘访问权限。