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