applescript:如何终止执行终端

时间:2016-05-08 16:39:46

标签: macos terminal applescript

我试图制作一个苹果脚本,让我自动管理一个cpp项目。我也使用了詹金斯。

基本上,cpp项目是一种无限循环,它将在终端中执行。我设置Jenkins重建并每20秒执行一次。换句话说,我的电脑应该完成以下任务:
1)重建项目;
2)执行项目;
3)等待20秒;
4)关闭终端。

然而,当我到达4)时,会弹出一个对话框:你想要关闭这个窗口吗? 所以我必须点击按钮"关闭"。

我的问题是:如何用AppleScript编写代码来自动执行4)?

这是我的苹果:

tell application "Terminal"
    do script "cd /Users/Shared/Jenkins/Home/workspace/test"
    do script "make clean" in window 1
    do script "make" in window 1
    do script "./matrix.out" in window 1
    delay 20
    close window 1  # problem's here
end tell

2 个答案:

答案 0 :(得分:0)

我想知道这是否有帮助: Running process in background after closing terminal

问题可能是你最后在终端中运行的是一个进程(matrix.out),它会因关闭窗口而被杀死,你不想要那个,对吧?因此,您可能需要使用所描述的技术(如果可能)更改matrix.out脚本,以防止它执行此操作。

也可以通过使matrix.out可执行文件(chmod为可执行文件或使用Kilometer)来解决您的问题,然后只需打开它即可解决问题。使用香草苹果。

答案 1 :(得分:0)

  

然而,当我到达4)时,会弹出一个对话框:你要关闭这个窗口吗?所以我必须点击“关闭”按钮。

但你也可以使用AppleScript (通过GUI脚本直播系统事件),所以到目前为止你所说的都不是问题。

tell application "Terminal" to activate
tell application "System Events"
    tell application process "Terminal"
        tell its window 1
            tell its sheet 1
                click button "Close"
            end tell
        end tell
    end tell
end tell