我希望设置一个运行bbdiff命令的Automator,并将选定的文件传递给查找程序。
我创建了一个快速操作,并将其设置为在"Finder.app“中接收”文件或文件夹“。
然后,我添加了"Run脚本“操作,并将Shell设置为"/bin/bash",并将输入”作为参数“传递。剧本是:
/usr/local/bin/bbdiff "$1" "$2"如果我从Automator或终端手动运行该脚本(用真正的文件名替换参数),它会提示我授权主机程序控制BBEdit,然后它就能工作了。
但是如果我从Finder运行它,我会得到以下错误:
操作“Run脚本”遇到了一个错误:“您必须允许
bbdiff向BBEdit应用程序发送事件。使用tccutil reset AppleEvents重置系统权限,然后重试。错误:-1743“
我试着运行tccutil reset AppleEvents并再次运行该操作,但它显示了相同的错误。
我还尝试将bbdiff、/bin/bash和Finder添加到System > Privacy的可访问性和完整磁盘访问选项卡中,但没有什么改变。看起来,您需要向自动化选项卡添加一些东西,这是无法手动完成的。
如何使它允许像bbdiff这样的UNIX命令来控制应用程序?
更新:
我通过使用"Run AppleScript“操作(而不是使用"Run脚本”)来解决这个问题:
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脚本来说,这是行不通的,所以问题仍然存在。
发布于 2020-11-19 16:07:14
在我的例子中,我只需关闭当前打开的BBEdit,然后再次打开它,就可以修复它。在我的例子中,在错误出现之前,我正在做一个BBEdit更新。
https://stackoverflow.com/questions/55620453
复制相似问题