为什么我的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
没有指定位置始终打开一个新窗口。
添加window
或tab
与in
参数
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,但我想有一个类似的术语。
答
这将防止终端没有打开的窗口时发生错误。
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 script
Here is Apple's documentation on it.
哇,我不能相信我忽略了!尽管如此,我仍然不确定Sublime Text发生了什么。也许它是一个在重启时打开窗口的设置。至于Chrome,我会在一个新问题中发布该脚本的特定部分,并尝试运气。 – compostkicker