如何向正在运行的 Applescript 发送信号

如何向正在运行的 Applescript 发送信号

我正在运行一个脚本,该脚本基本上是循环内循环。我需要某种方式来通知此脚本跳出内循环。

repeat
   doxyz
   repeat
      doSoreWork
      if signalPresent then
         exit repeat
      end if
   end repeat
end repeat

我一直在搜索,但 AS 似乎没有这样的功能。我能想到的一个可能方法是使用文件。内循环可以监视它的存在,如果发现则中断循环。这很粗糙,我不喜欢它。有更好的方法吗?

编辑:

我一直在关注Bash 脚本使用信号来打破循环。目前为止它运行得相当好,尽管它仍然很丑陋 :)

答案1

你可以在循环开头使用 while 来测试某个东西是否存在

例如,只要桌面上有一个名为“tester.rtf”的文件,它就会大声计数

set fileTarget to (path to desktop folder as text) & "tester.rtf" 
tell application "System Events"
    set x to 1
    repeat while (exists file fileTarget)
        set x to x + 1
        say x
    end repeat
end tell

相关内容