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

Why is my Applescript opening multiple terminal windows?

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

脚本有效,只是效果不佳。它会打开三个终端 windows,有时还会打开多个 Sublime windows。有什么想法或想法吗?另外,我将如何让 Chrome 在打开时自动创建的新选项卡中打开 URL 而不是创建第二个新选项卡?

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 没有指定位置总是打开一个新的 window。
使用 in 参数

添加 windowtab
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 但我想有类似的术语。

这将防止在终端没有打开时发生错误 window。

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

关于Chrome:如果将打开位置语句移动到一行,而之前没有打开Chrome windows,Chrome只会打开选项卡你传递给它:

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

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