So senden Sie ein Signal an ein laufendes Applescript

So senden Sie ein Signal an ein laufendes Applescript

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

verwandte Informationen