在 OS X Mountain Lion 中通过 shell 函数将参数传递给 osascript

在 OS X Mountain Lion 中通过 shell 函数将参数传递给 osascript

答案在如何使用 URL 参数打开新的 Firefox 窗口在 Mac OSX Mountain Lion (10.8.2) 中出现故障。我无法对该答案或问题发表评论,因此我不得不创建一个新问题。

它失败了,像这样:

$ firefox-window http://www.yahoo.com
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/osascript) is code signed with entitlements

新窗口成功打开,但它是空的(即,传递给 bash 函数中的 AppleScript 的环境变量被忽略)。

有没有其他方法可以从命令行将变量传递给 applescript?(也许不使用 bash?)

参考

“沙盒应用程序不能使用 AppleScript 与 Mac 上的其他应用程序通信,除非开发人员明确请求(并获得)这样做的权利。”

所以我猜测这个限制阻止了上面使用的技术,即 bash 脚本不能包装与 Firefox 对话的 applescript。

解决方法 #1

直接调用它,而不是使用 shell 变量 ($1)。例如,下面的代码有效:

$ osascript ~/bin/firefox-window.scpt "http://www.yahoo.com"

Firefox 打开一个指向 yahoo 的新窗口。

答案1

osascript -e 'tell application "Firefox"' -e 'open location "http://example.com/"' -e 'end tell'

这样就可以了,在新标签页中,而不是在新窗口中,如果可以的话。

相关内容