
기본적으로 루프 내부에 루프가 있는 스크립트를 실행하고 있습니다. 내부 루프에서 벗어나도록 이 스크립트에 신호를 보낼 방법이 필요합니다.
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