分享一个自动化动作后,最常遇到的提问就是“为什么我用不了?”。
这个问题,不附上具体症状、软硬件环境的话,基本不可能回答。毕竟自动化工具涉及的细节零零散散,每个人电脑电脑环境又各不相同,很难给出一个方案包治百病。不过,几年折腾下来,我已经梳理了不少常见问题,如果你也遇到“用不了”的问题,不妨照着本文所列内容排查一下,问题很可能迎刃而解。
本文内容,各章节已有零星涉及,如有重复,还请见谅。
为什么我的 Automator 动作用不了?
下载安装 Automator 动作后,结果发现没有如期运作,这的确让人沮丧。但多数问题通过简单设置是可以解决的。这节集中分析 Automator 本身可能出现的问题。
为什么 Automator 的小齿轮一转就停?
Automator 运行时会在电脑顶部状态栏显示一个小齿轮,表示执行状态。有时候齿轮可能刚转一下就消失,动作也没有结果。这说明动作实际上没有执行完毕或者干脆未曾执行过,可能的原因有:
- 网络不通/没有代理:有些动作依赖网络,比如以图搜图,没有正常联网的情况下自然出师未捷身先死。另外,部分代理工具可能没有给 Automator 开绿灯,如果浏览器可以正常使用而 Automator 动作跑不起来,需要检查一下代理设置1。
- 输入格式不对:如果动作中包含 Shell 脚本,需检查一下输入格式是否和脚本语法匹配。比如说处理文件,输入“至 stdin”和
while
循环搭档,而“作为自变量(as arguments)”和for
搭配。
两种组合功能基本等价,通常情况下只需要关注搭配而不用考虑哪组更好(除非你用 Automator 处理几个数据库,while
才表现出速度上的优势,不过这种情况下断断不该用 Automator 这根绣花针)。
为什么我设置的快捷键不起作用?
Automator 动作可以在系统键盘设置中绑定快捷键,不过偶尔也会失效。一般失效是键位冲突造成的,可以按下面的步骤检查:
- 直接在 Automator 内部运行动作,确保动作本身没有问题。
- 检查应用快捷键,有些应用的自带键位比较难排查,没头绪的情况下可以挨个退出 Dock 和菜单栏上的应用,将鸠占鹊巢的家伙扒出来。
- 实在查不出来,才重新分配快捷键。
针对不依赖第三方工具的动作,检查上面几项设置可以过滤掉不少问题。
为什么我的 Shell 脚本不能用?
Shell 脚本是拓展 Automator 能力的重要工具,相对图形界面,它掌握起来难一点,也经常听到读者“用不了”的抱怨。一般是各人电脑环境不同造成的,也有动手意愿强的朋友,自行修改时不慎“翻车”。下面几条可以帮助诸位进行速查:
为什么第三方命令行工具用不了(找不到命令)?
如果你的 Shell 脚本中用了第三方工具,比如,用于解压 unrar,发现它在终端中可以跑、在 Automator 里却不能用,大概率是没有设置环境变量。在脚本开头加上下面内容,通常就能让 Automator 顺利调用第三方命令行工具:PATH=$PATH:/usr/local/bin/
。
为什么我的脚本不能识别中文?
平时用着正常,一处理中文名文件、搜索中文关键词 Automator 就罢工,很可能是没有为中文字符设置环境变量。和上一条类似,在脚本开头加上如下内容即可:#export LANG="en_US.UTF-8"
。
为什么 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 专属细节,本系列文章暂不深挖。
小结
小病无需挂门诊,收到大量的重复提问后,我整理了这一份清单,希望帮大家节省时间,不耽误正常使用。换个角度看,如果运行成功就沾沾自喜、运行失败则摆摆手不知所措,使用自动化工具也就变成了碰运气;最常见的一些故障,最好能够独立排查。
鱼人不如渔人,有这样一份速查清单,相信大家也能把自动化工具用得更舒服。