2016-01-22 3 views
1

Я пытаюсь написать сценарий, который откроет Sublime Text в моем рабочем каталоге, cd в мою папку VM и выполнит «бродягу вверх», а затем откройте мой каталог сайта в chrome.Почему мой Applescript открывает несколько окон терминала?

Сценарий работает, только не очень хорошо. Он открывает три окна терминала и, иногда, несколько Sublime окон. Любые мысли или идеи? Кроме того, как бы я хотел, чтобы 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 

ответ

1

Поскольку 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, но я предполагаю, что есть подобная терминология.

+0

Вау, я не могу поверить, что я этого не замечал! Я все еще не уверен, что происходит с Sublime Text. Возможно, это параметр, который открывает окна при перезагрузке. Что касается Chrome, я отправлю эту часть скрипта в новый вопрос и попробую удачи. – compostkicker

0

Это предотвратит возникновение ошибки, если терминал не имеет открытого окна.

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

0

Что касается Chrome: Если переместить открытое заявление о местоположении на одной линии, и вы не имели открытые открытые окна Chrome перед тем, Chrome будет только открыть вкладку, перейти на него:

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

по вопросу о месторасположении несколько окон терминалов, ответ вадиан правильный. Я хотел бы указать, что есть способ запуска сценариев оболочки через AppleScript без запуска терминала. Это может быть полезно: do shell scriptHere is Apple's documentation on it.

Смежные вопросы