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

问题描述:

我想写一个脚本,将打开我的工作目录中的崇高文本,cd到我的VM文件夹并执行“vagrant up”,然后在chrome中打开我的站点目录。为什么我的Applescript打开多个终端窗口?

剧本的作品,只是不好。它打开三个终端窗口,有时还会有多个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 

因为do script没有指定位置始终打开一个新窗口。
添加windowtabin参数

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,但我想有一个类似的术语。

+0

哇,我不能相信我忽略了!尽管如此,我仍然不确定Sublime Text发生了什么。也许它是一个在重启时打开窗口的设置。至于Chrome,我会在一个新问题中发布该脚本的特定部分,并尝试运气。 – compostkicker

这将防止终端没有打开的窗口时发生错误。

tell application "Terminal" 
    if not (exists window 1) then reopen 
    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 
+0

谢谢你的错误。如果终端没有打开,我实际上从来没有遇到与终端抛出错误的问题,但它很好。 – compostkicker

关于Chrome浏览器:如果您将开启位置语句一条线,你之前有没有打开打开Chrome浏览器窗口,Chrome只会打开您传递给它的标签:

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

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