Bedingungsanweisungen sind das Rückgrat vieler Programmier- und Skriptsprachen. In AppleScript bieten sie eine Möglichkeit, Skripts durch Analyse und Reaktion auf verschiedene Situationen um eine weitere Dimension der Komplexität zu erweitern. Dieses Tutorial wird genauer unter die Lupe genommen ob und ansonsten Anweisungen und die verschiedenen Möglichkeiten, sie in einem Skript zu implementieren.
Bis jetzt haben wir zwei Artikel gepostet, die perfekt sind, um Sie von einem kompletten Anfänger zu jemandem zu führen, der sich kompetent an einem grundlegenden Skript orientiert:
Diese Lernprogramme geben einen Überblick und geben Ihnen einen Überblick über die Funktionsweise von AppleScript sowie über die Art der Programmierstrukturen. Wenn Sie jedoch wirklich ein Master-Script-Writer werden möchten, müssen Sie sich eingehender mit der Syntax und den Konstrukten befassen, aus denen AppleScript besteht.
Mach dir keine Sorgen, wir sind mit dir jeden Schritt des Weges. Dies ist der erste Artikel in einer Reihe von Artikeln, in denen die verschiedenen Aspekte von AppleScript eingehend untersucht werden müssen, damit Sie Ihre Mac-Automatisierung voll ausnutzen können.
Spitze: Um die Skripts in diesem Beitrag auszuführen, müssen Sie die App "AppleScript Editor" öffnen, die Sie unter finden können Anwendungen> Dienstprogramme.
In AppleScript sind Sie schwer zu finden, um zwei Zeichen zu finden, die mit der Wirkung von "if" konkurrieren. Wenn Sie lernen, dieses scheinbar einfache Werkzeug richtig anzuwenden, gehen Sie weit.
Eine grundlegende ob Aussage funktioniert viel wie ein sagen Block. Nur zur Auffrischung, hier ist die Struktur von a sagen:
[apfelschrift]
Anwendung "Safari" mitteilen
aktivieren Sie
ende sagen
[/ applescript]
Wie Sie sehen, startet dieses Skript Safari. Es besteht aus drei Zeilen: Die erste und die letzte Zeile enthalten den Tell- "Block", der immer eine enthalten muss Ende Aussage. Alles zwischen diesen beiden Zeilen bildet den Hauptteil des Tellblocks.
Bedingte Anweisungen, wie auch viele andere Konstrukte, lehnen sich dieselbe Struktur auf, nur diesmal verwenden wir sie ob anstatt sagen.
[apfelschrift]
Wenn ja, dann
--etwas tun
ende wenn
[/ applescript]
Diese Struktur ist ziemlich einfach und sollte durchaus Sinn ergeben. Zuerst starten Sie Ihre bedingte Anweisung und qualifizieren Sie sie mit einem Boolean. Dann schreiben Sie Ihre Befehle, die im Fall einer Wahrheit auslösen, und schließen Sie Ihre Anweisung schließlich mit einem Ende.
Spitze: Im AppleScript Editor müssen Sie nicht "end if" eingeben, sondern nur "end". Der Compiler fügt den Rest automatisch hinzu, auch wenn Sie mehrere Endanweisungen haben, die zu verschiedenen Blocktypen gehören. Es ist alles für Sie herausgefunden!
Bevor wir weitergehen, ist es absolut wichtig, dass Sie genau verstehen, was ich meine, wenn ich von einem booleschen Begriff spreche. Boolean ist ein Datentyp, der nur einen von zwei Werten annehmen kann: true oder false. In der Welt des Computing gibt es absolut absolut. Entweder ist etwas, oder es ist nicht, es gibt kein Dazwischen.
AppleScript kann leicht herausfinden, ob bestimmte Dinge zutreffen, und dieses Wissen verwenden, um eine Bedingungsanweisung zu aktivieren. Um es auszuprobieren, geben Sie eine Gleichheitserklärung direkt in den AppleScript Editor ein und führen Sie sie aus.
Wie Sie sehen, hat der Compiler die Anweisung "10> 1" ausgewertet und korrekt "true" zurückgegeben. Wenn wir das Gleichheitszeichen umdrehen und "10 < 1", "false" is returned. This goes way beyond numeric expressions, pretty much any statement that AppleScript is able to evaluate should work as well. Here's a quick check of the current day of the week, which returns "true".
Nachdem Sie nun verstanden haben, was ein Boolean ist, ist es einfacher, sich mit der Funktionsweise von Bedingungen zu beschäftigen. Wie wir im Diagramm oben gesehen haben, heißt es in einer bedingten Anweisung: "Wenn dieser Boolean als wahr bewertet wird, dann tun Sie etwas."
Lassen Sie uns dies in der Praxis anhand der "10> 1" -Anweisung sehen, die wir zuvor getestet haben:
[apfelschrift]
wenn 10> 1 dann
Rückkehr "Das stimmt!"
ende wenn
[/ applescript]
Hier haben wir das Wort "true" durch etwas ersetzt, das AppleScript auswerten soll. Die Struktur hier ist genau das, was wir zuvor gesehen haben:
Bei dieser Struktur werden die Befehle innerhalb der if-Anweisung nur ausgeführt, wenn sich der Boolean als wahr erweist. In diesem Fall ist die Anweisung true, daher wird im Abschnitt "Ergebnis" des AppleScript-Editor-Fensters Folgendes angezeigt.
Falls Sie sich fragen, gibt es eine spezielle, prägnante Form eines ob Anweisung, die nur eine einzige Zeile belegt. Es erfordert kein "Ende" und kann die zusätzliche Komplexität nicht nehmen, die wir im nächsten Abschnitt betrachten werden, aber es ist in einfachen Fällen nützlich.
[apfelschrift]
--Einzeilige if-Anweisung
wenn 10> 2, dann "ja" zurückgeben
[/ applescript]
Ob Aussagen sind großartig, aber in der Form, die wir bisher gesehen haben, sind sie etwas eingeschränkt. Was wäre beispielsweise, wenn der Boolesche Wert im Skript falsch war? Hier ist ein Beispiel:
[apfelschrift]
setze x auf 20
wenn 10> x dann
return "10 ist größer als" & x
ende wenn
[/ applescript]
Wie Sie sehen, steigere ich hier allmählich die Komplexität, damit Sie mit gängigen Mustern und Konstrukten vertraut werden. In diesem Beispiel richten wir zuerst eine Variable ein, x, dann setze diese Variable gleich 20. Nun, wenn wir unsere ausführen ob Anweisung wird die Zahl 10 mit der Variablen verglichen.
In diesem Fall ist 10 nicht größer als 20, daher ist der Boolesche Wert falsch. Das bedeutet, dass unser Skript überhaupt nichts tut! Um dieses Problem zu beheben, wenden wir uns an sonst. Lassen Sie uns unser Skript ein wenig ändern:
[apfelschrift]
setze x auf 20
wenn 10> x dann
return "10 ist größer als" & x
sonst
return "10 ist nicht größer als" & x
ende wenn
[/ applescript]
Das Tolle an AppleScript ist, dass es so lesbar ist. Wenn Sie dieses Skript einfach vorlesen, können Sie genau erkennen, was es tut. Hier ist der Überblick:
Wenn 10 nicht größer als 20 ist, wird die zweite Anweisung zurückgegeben. Ihr Ergebnis sollte ungefähr so aussehen:
Nun, da wir zwei verschiedene boolesche Szenarien berücksichtigen können, sind wir viel besser geeignet, um komplexe Skriptaufgaben zu meistern.
Wie Sie sich vorstellen können, reicht auch dies nicht aus, um all die verschiedenen Situationen zu berücksichtigen, in denen Sie sich befinden werden. Vielleicht haben wir ein ziemlich komplexes Szenario, in dem verschiedene Ergebnisse möglich sind.
In diesem Szenario können wir implementieren sonst wenn um unsere Komplexität weiter zu erhöhen ob Aussage. Folgendes berücksichtigen:
[apfelschrift]
setze den Wochentag auf den Wochentag von (aktuelles Datum)
if (derWeekDay = Freitag) dann
return "Du bist fast frei!"
sonst wenn (derWeekDay = Samstag) dann
Rückkehr "Es ist das Wochenende!"
Sonst wenn (derWeekDay = Sonntag) dann
return "Entspannen Sie sich, denn morgen arbeiten wir."
sonst
return "Bleib dran, es ist noch nicht das Wochenende!"
ende wenn
[/ applescript]
Auch wenn Sie sich mit AppleScript nicht auskennen, macht es die natürliche Sprache recht einfach, herauszufinden, was los ist. Zuerst setzen wir eine Variable auf den aktuellen Wochentag. Als Nächstes durchlaufen wir eine Reihe von Tests mit ob, sonst wenn und sonst an dem entsprechenden Wochentag eine entsprechende Rückmeldung erhalten.
Bei der Ausführung wird das Skript das erste versuchen ob Aussage. Wenn dies zutrifft, wird die erste return-Anweisung ausgeführt und das Skript beendet (es werden keine weiteren Schritte unternommen). Wenn sich diese Aussage jedoch als falsch erweist, die erste sonst wenn versucht wird, dann die zweite und schließlich, wenn sich keine davon als wahr erweist, die letzte sonst tritt ein und gibt eine Aussage zurück, dass es noch nicht das Wochenende ist.
Das sonst wenn Die Struktur ist unglaublich leistungsfähig und ermöglicht es Ihnen, eine beliebige Anzahl verschiedener Szenarien zu berücksichtigen. Wenn Sie bestimmte Projekte programmieren, könnten Sie manchmal versucht sein, fünf, zehn oder sogar fünfzehn miteinander zu verketten sonst wenn Anweisungen, um alle verfügbaren Möglichkeiten zu durchlaufen. Leider ist dies normalerweise keine gute Codiermethode und kann zu einer Unmenge unnötiger Blähungen führen.
Seien Sie beim Gebrauch immer aufmerksam sonst wenn und fragen Sie sich, ob es einen besseren Weg gibt, um das zu erreichen, was Sie erreichen wollen. Es ist oft viel praktischer und kurz, eine Schleife zu verwenden, aber das ist ein Artikel für einen anderen Tag (in Kürze!).
Ein letzter kurzer Ratschlag bezüglich ob Aussagen. Eine Alternative zu sonst ist zu verwenden oder stattdessen. Hier ist eine vereinfachte Version des Wochentags-Skripts mit oder und nur zwei mögliche return-Anweisungen.
[apfelschrift]
setze den Wochentag auf den Wochentag von (aktuelles Datum)
if (theWeekDay = Samstag) oder (theWeekDay = Sonntag) dann
Rückkehr "Es ist das Wochenende!"
sonst
return "Bleib dran, es ist noch nicht das Wochenende!"
ende wenn
[/ applescript]
Dies deckt das meiste ab, was Sie über Konditionale wissen müssen. Öffnen Sie den AppleScript Editor und experimentieren Sie mit Ihren eigenen Bedingungsanweisungen. Mit was für coolen Skripten kannst du auffallen??
Dies ist nur die Spitze des sprichwörtlichen Eisbergs, soweit wir uns mit AppleScript befassen. Dies ist ein unglaublich umfangreiches Thema, das viel Potenzial für die Steigerung Ihrer Beherrschung Ihres Macs bietet. Wir werden also viele weitere großartige AppleScript-Tutorials haben, die Ihnen helfen, ein echter Automatisierungsexperte zu werden.