我正在尝试编写一个脚本,它将在我的工作目录中打开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
答案 0 :(得分:2)
由于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,但我猜有类似的术语。
答案 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.