article_image

分享一个自动化动作后,最常遇到的提问就是“为什么我用不了?”。

这个问题,不附上具体症状、软硬件环境的话,基本不可能回答。毕竟自动化工具涉及的细节零零散散,每个人电脑电脑环境又各不相同,很难给出一个方案包治百病。不过,几年折腾下来,我已经梳理了不少常见问题,如果你也遇到“用不了”的问题,不妨照着本文所列内容排查一下,问题很可能迎刃而解。

本文内容,各章节已有零星涉及,如有重复,还请见谅。

为什么我的 Automator 动作用不了?

下载安装 Automator 动作后,结果发现没有如期运作,这的确让人沮丧。但多数问题通过简单设置是可以解决的。这节集中分析 Automator 本身可能出现的问题。

为什么 Automator 的小齿轮一转就停?

Automator 运行时会在电脑顶部状态栏显示一个小齿轮,表示执行状态。有时候齿轮可能刚转一下就消失,动作也没有结果。这说明动作实际上没有执行完毕或者干脆未曾执行过,可能的原因有:

  • 网络不通/没有代理:有些动作依赖网络,比如以图搜图,没有正常联网的情况下自然出师未捷身先死。另外,部分代理工具可能没有给 Automator 开绿灯,如果浏览器可以正常使用而 Automator 动作跑不起来,需要检查一下代理设置1
  • 输入格式不对:如果动作中包含 Shell 脚本,需检查一下输入格式是否和脚本语法匹配。比如说处理文件,输入“至 stdin”和 while 循环搭档,而“作为自变量(as arguments)”和 for 搭配。
Alt text
输入格式和 Shell 语法的搭配

两种组合功能基本等价,通常情况下只需要关注搭配而不用考虑哪组更好(除非你用 Automator 处理几个数据库,while 才表现出速度上的优势,不过这种情况下断断不该用 Automator 这根绣花针)。

为什么我设置的快捷键不起作用?

Automator 动作可以在系统键盘设置中绑定快捷键,不过偶尔也会失效。一般失效是键位冲突造成的,可以按下面的步骤检查:

  1. 直接在 Automator 内部运行动作,确保动作本身没有问题。
  2. 检查应用快捷键,有些应用的自带键位比较难排查,没头绪的情况下可以挨个退出 Dock 和菜单栏上的应用,将鸠占鹊巢的家伙扒出来。
  3. 实在查不出来,才重新分配快捷键。
Alt text
键盘设置中的快捷键

针对不依赖第三方工具的动作,检查上面几项设置可以过滤掉不少问题。

为什么我的 Shell 脚本不能用?

Shell 脚本是拓展 Automator 能力的重要工具,相对图形界面,它掌握起来难一点,也经常听到读者“用不了”的抱怨。一般是各人电脑环境不同造成的,也有动手意愿强的朋友,自行修改时不慎“翻车”。下面几条可以帮助诸位进行速查:

为什么第三方命令行工具用不了(找不到命令)?

Alt text
Automator 找不到命令

如果你的 Shell 脚本中用了第三方工具,比如,用于解压 unrar,发现它在终端中可以跑、在 Automator 里却不能用,大概率是没有设置环境变量。在脚本开头加上下面内容,通常就能让 Automator 顺利调用第三方命令行工具:PATH=$PATH:/usr/local/bin/

为什么我的脚本不能识别中文?

平时用着正常,一处理中文名文件、搜索中文关键词 Automator 就罢工,很可能是没有为中文字符设置环境变量。和上一条类似,在脚本开头加上如下内容即可:#export LANG="en_US.UTF-8"

为什么 Automator 说找不到文件?

Alt text
Automator 找不到文件

Shell 脚本对文件路径要求比较严格,如果出现空格、~ 等特殊字符,很可能出现歧义而报错。注意下面两点,可以避免很多文件路径带来的问题:第一写固定路径时,比如指定一个文件存放地,可以把文件先拖进终端以获得编码过的路径2,再把这条路径复制进 Shell 脚本;第二,用到变量时,在两边用英文引号 "" 包起来,即便出现特殊字符也不太要紧。还有种特殊情况,就是某些命令不支持格式简短的相对路径(比如这种 ~/Desktop),其他方法无效时可以试试把路径写死。

脚本存在的具体问题不胜枚举,这里且记录一些最常见的小毛病。

为什么不能安装第三方命令行工具?

第三方命令行工具(CLI,Command Line Tools)也是 Automator 的强化组件之一,很多动作(OCR 处理 PDF、解压 RAR 文件等等)都要额外安装第三方命令行工具。也许就有读者卡在安装这一步上。

为什么 brew install 某某软件 命令无效?

这条命令是包管理器 HomeBrew 独有的,没装过 HomeBrew 的电脑自然用不了。虽说没人强制我们用 HomeBrew 来装命令行工具,但有个标准环境总是好的,否则日后若因为包管理3不善而出问题,想找人搭把手都难。不熟悉 HomeBrew 的可以通过私信我要入门文章。

为什么我的 HomeBrew 一直卡在 Updating HomeBrew

我们所用网络的状况路人皆知。出现这个提示不影响使用,实在卡得久了,可以按 ⌃Control-C 跳过。

为什么提示我安装 Command Line Tool?

有的命令行工具依赖 Command Line Tool,这是开发工具 Xcode 的一部分,看到相关提示时复制终端给你的命令,装上就是。安装 Command Line Tool 时并不会跟着装上 Xcode,所以不用担心磁盘空间占用问题。

HomeBrew 是管理 macOS 软件的重要标准化工具,实际使用时还有别的问题,不过我们的焦点还是自动化工具,至于起辅助作用的 HomeBrew 专属细节,本系列文章暂不深挖。

小结

小病无需挂门诊,收到大量的重复提问后,我整理了这一份清单,希望帮大家节省时间,不耽误正常使用。换个角度看,如果运行成功就沾沾自喜、运行失败则摆摆手不知所措,使用自动化工具也就变成了碰运气;最常见的一些故障,最好能够独立排查。

鱼人不如渔人,有这样一份速查清单,相信大家也能把自动化工具用得更舒服。


  1. 恕本系列文章不便介绍代理工具的使用。
  2. 无非就是在特殊字符前自动加个转义符号避免歧义,没什么神秘的。
  3. 近似理解为软件管理。

author_avatar

Lawyer, macOS/iOS Automation Amateur