为什么我的Applescript会打开多个终端窗口?

时间:2016-01-22 17:17:31

标签: macos applescript

我正在尝试编写一个脚本,它将在我的工作目录中打开Sublime Text,cd到我的VM文件夹并执行“vagrant up”,然后在chrome中打开我的站点目录。

脚本有效,但不太好。它打开三个终端窗口,有时还会打开多个Sublime窗口。有什么想法或想法吗?另外,我如何让Chrome在打开时自动创建的新标签中打开网址,而不是制作第二个新标签?

tell application "Google Chrome"
    activate
    open location "http://codeup.dev"
end tell

tell application "Terminal"
    activate
    do script "subl ~/vagrant-lamp/sites/codeup.dev/public/"
    do script "cd ~/vagrant-lamp/; vagrant up"
end tell

3 个答案:

答案 0 :(得分:2)

由于do script未指定位置,因此始终会打开一个新窗口 使用window参数

添加tabin
tell application "Terminal"
    activate
    do script "subl ~/vagrant-lamp/sites/codeup.dev/public/" in window 1
    do script "cd ~/vagrant-lamp/; vagrant up" in window 1
end tell

我没有Chrome,但我猜有类似的术语。

答案 1 :(得分:1)

这可以防止在终端没有打开窗口时发生错误。

EventReplicator

答案 2 :(得分:0)

关于Chrome:如果您将打开的位置语句移动到一行并且之前没有打开Chrome窗口,则Chrome只会打开您传递给它的标签:

tell application "Google Chrome" to open location "http://codeup.dev"

关于多个终端窗口,vadian的答案是正确的。我想指出有一种方法可以通过AppleScript运行shell脚本而无需启动终端。这可能会有所帮助:do shell script Here is Apple's documentation on it.