0

我想设置一个运行bbdiff命令的 Automator 快速操作,并将 Finder 中的选定文件传递给它。

我创建了一个快速操作,并将其设置为在“Finder.app”中接收“文件或文件夹”。

然后我添加了“运行外壳脚本”动作,并将外壳设置为“/bin/bash”,并将输入“作为参数”传递。脚本是:

/usr/local/bin/bbdiff "$1" "$2"

如果我从 Automator 或终端手动运行该脚本(用真实文件名替换参数),它会提示我授权主机程序控制 BBEdit,然后它就可以工作了。

但如果我从 Finder 运行它,我会收到以下错误:

“运行 Shell 脚本”操作遇到错误:“您必须允许bbdiff将事件发送到 BBEdit 应用程序。用于tccutil reset AppleEvents重置系统权限,然后重试。bbdiff:错误:-1743”</p>

我尝试tccutil reset AppleEvents再次运行并运行该操作,但它显示了相同的错误。

我还尝试将 bbdiff、/bin/bash 和 Finder 添加到 System Preferences > Privacy 的 Accessibility 和 Full Disk Access 选项卡中,但没有任何改变。看起来您需要在“自动化”选项卡中添加一些内容,而这无法手动完成。

我怎样才能让它允许像bbdiff控制应用程序这样的 UNIX 命令?

更新:

我设法通过使用“运行 AppleScript”操作而不是“运行 Shell 脚本”来解决此问题:

on run {input, parameters}
    tell application "BBEdit" to compare (item 1 of input) against (item 2 of input)
    return input
end run

我第一次运行它时,我得到了允许 Finder 控制 BBEdit 的提示,然后它工作了。

但这不适用于其他 shell 脚本,所以问题仍然存在。

4

1 回答 1

1

就我而言,我可以通过关闭当前打开的 BBEdit 然后再次打开它来修复它。就我而言,我在错误出现之前进行了 BBEdit 更新。

于 2020-11-19T16:07:14.913 回答