
Ich führe ein Skript aus, das im Grunde eine Schleife innerhalb einer Schleife enthält. Ich brauche eine Möglichkeit, diesem Skript zu signalisieren, dass es aus der inneren Schleife ausbrechen soll.
repeat
doxyz
repeat
doSoreWork
if signalPresent then
exit repeat
end if
end repeat
end repeat
Ich habe gesucht, aber AS scheint keine solche Funktion zu haben. Eine Möglichkeit, die mir einfällt, ist die Verwendung einer Datei. Die innere Schleife könnte die Existenz der Datei überwachen und die Schleife unterbrechen, wenn sie gefunden wird. Das ist grob und gefällt mir nicht. Gibt es eine bessere Möglichkeit?
BEARBEITEN:
Ich habe mir angesehenBash-Skripte, die Signale verwenden, um die Schleifen zu unterbrechen. Bisher funktioniert es ziemlich gut, obwohl es immer noch hässlich ist :)
Antwort1
Sie können die Existenz von etwas am Anfang der Schleife testen, indem Sie while verwenden.
Dies wird beispielsweise laut vorgezählt, solange sich auf dem Desktop eine Datei mit dem Namen „tester.rtf“ befindet.
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