【问题标题】:Stop a running AppleScript in such a way that calls its error handler以调用其错误处理程序的方式停止正在运行的 AppleScript
【发布时间】:2017-03-31 00:54:24
【问题描述】:

我使用 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 是干什么用的吗?我一直找不到对这些选项的任何参考。

【问题讨论】:

    标签: macos automation applescript system-calls


    【解决方案1】:

    Applescript 从头到尾运行。如果你杀死它,整个脚本就会被删除。

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

    【讨论】:

    • 合理的想法。在bash 脚本中,我定期检查是否存在名为/PAUSE 的文件,然后用户可以通过touch /PAUSE 暂停它们。
    猜你喜欢
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2012-05-31
    • 1970-01-01
    • 2016-11-08
    • 2023-04-05
    • 2021-09-18
    相关资源
    最近更新 更多