Команда do script
, как вы ее написали, всегда будет выполняться в новом окне. Если вы хотите, чтобы он запускался в определенном окне, используйте следующий формат: do script (...) in (window...)
. Синтаксис терминала in
также может обрабатывать запущенные сценарии на вкладках.
Например, если вы хотите запустить скрипт в самом переднем окне, вы можете написать do script "echo Hello, world!" in front window
.
Редактировать: Чтобы продолжить, если вы хотите всегда запускать скрипт в окне (создать новый, если ни один не открыт), вы можете использовать следующий AppleScript:
tell application "Terminal"
activate
if length of (get every window) is 0 then
tell application "System Events" to tell process "Terminal" to click menu item "New Window" of menu "File" of menu bar 1
end if
do script "echo Hello, world!" in front window
end tell
Конечно, вам нужно правильно избежать этого в NSArray
, но я уверен, что вы можете сделать.