1

Я запускаю сценарий, который в основном имеет цикл внутри цикла. Мне нужен какой-то способ дать сигнал этому сценарию выйти из внутреннего цикла.

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

Я искал, но у AS, похоже, нет такой возможности. Один из возможных способов, который я могу придумать, - это использование файла. Внутренний цикл может отслеживать его существование и, если он найден, разорвать цикл. Это грубо, и мне это не нравится. Есть ли способ лучше?

РЕДАКТИРОВАТЬ:

Я смотрел на скрипты Bash, используя сигналы, чтобы разорвать петли. Пока это работает довольно хорошо, хотя все еще ужасно :)

1 ответ1

0

Вы можете проверить наличие чего-либо в начале цикла, используя

например, это будет считаться вслух, пока на рабочем столе есть файл с именем '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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .