以调用其错误处理程序的方式停止正在运行的AppleScript

时间:2017-03-31 00:54:24

标签: macos automation applescript system-calls

我使用ssh运行自动化脚本。脚本是用AppleScript编写的。我希望能够以这样一种方式停止脚本,即调用它的错误处理程序而不是停止死亡。

使用以下AppleScript作为示例:

on run

    try
        repeat with i from 1 to 1000
            delay 1
        end repeat

    on error
        beep 1
    end try

end run

我将脚本保存为我的主文件夹test.applescript

然后我从终端运行它:

osascript ~/test.applescript

无论如何都要从命令行停止脚本以便听到哔声?使用kill -s SIGHUP停止脚本,但我没有听到哔哔声。我已经尝试了所有信号无济于事。

我最接近的是使用以下内容:

osacriptmonitor ~/test.applescript然后使用齿轮菜单取消。通过这样做,我听到了哔哔声。 (有关osascriptmonitor的更多信息,请参阅Running AppleScripts through the ScriptMonitor.app Utility。)

同样重要的是要注意,当我使用osacriptmonitor代替osascript时,我会从ps -ax | grep osascript获得以下内容:

/usr/bin/osascript -T 4984 -P /Users/david/test.applescript

有谁知道-T-P用于什么?我一直无法找到这些选项的任何参考。

1 个答案:

答案 0 :(得分:1)

Applescript从开始到结束。如果你杀了它,整个脚本都会被删除。

如果你想拥有一个更可控的结局,你需要在循环中包含另一个例程。例如。每十个循环检查脚本之外的东西。然后,您只需要更改该外部值即可在脚本中触发其他内容。