Script-Anweisungen: Werten einen Ausdruck aus und führen in Abhängigkeit vom Ergebnis Anweisungen aus.
:IF Condition
[Anweisungen]
[:ELSE]
[Sonst-Anweisungen]
:ENDIF
Syntax |
Beschreibung/Format |
---|---|
Bedingung |
Ein mittels Script-Literalen, Script-Variablen, Script-Funktionen oder numerischen Ausdrücken sowie Operatoren formulierter Ausdruck, der als Ergebnis "Wahr" oder "Falsch" liefert. |
Anweisungen |
Eine oder mehrere Anweisungen, die ausgeführt werden, wenn die Bedingung den Wert "Wahr" ergibt. |
Sonst-Anweisungen |
Eine oder mehrere Anweisungen, die ausgeführt werden, wenn die Bedingung den Wert "Falsch" ergibt. |
Die IF-Anweisung ist eine Kontrollstruktur, mit der Sie die Scriptabarbeitung von dem Ergebnis einer Bedingung abhängig machen können. Bei dieserhandelt es sich um einen logischen Ausdruck.
Ist die Bedingung erfüllt (Wahr), so werden die Anweisungen ausgeführt.
Ist die Bedingung nicht erfüllt (Falsch), so werden die Sonst-Anweisungen von :ELSE ausgeführt. Besitzt der IF-Block keinen :ELSE-Zweig, wird das Script mit der nächsten Zeile nach dem :ENDIF fortgesetzt.
Sie können IF-Blöcke auch schachteln. Dabei gibt es keine Beschränkung für die Verschachtelungstiefe.
Ein IF-Block muss nicht unbedingt einen ELSE-Zweig beinhalten.
Wenn Zeichenketten länger als 1024 Zeichen sind, werden die Zeichen nach dem 1024. Zeichen von einer :IF-Anweisung nicht berücksichtigt. Der vergleichende Algorithmus prüft nur die ersten 1024 Zeichen einer Zeichenkette.
Um eine Bedingung mit mehreren Werten zu verknüpfen bzw. mehrere einzelne Bedingungen zu verknüpfen, dient das Schlüsselwort ODER.
Eine Bedingung weist folgende Struktur auf:
WertVergleichsoperatorVergleichswert[OR Vergleichswert...] |
---|
For example:
:IF &DEP# = "EDP" OR "AE"
Bis zu 13 ODER dürfen in einer Bedingung vorhanden sein.
Die Formulierung einer Bedingung besitzt eine der folgenden Vergleichsoperatoren:
Operator |
Kurzform |
Regel |
---|---|---|
= |
EQ |
Der Ausdruck ist "Wahr", wenn mindestens ein Vergleichswert dem Wert entspricht. |
<> |
NE |
Der Ausdruck ist "Wahr", wenn keiner der Vergleichswerte gleich dem Wert ist. |
< |
LT |
Der Ausdruck ist "Wahr", wenn ein Vergleichswert den angegebenen Begriff erfüllt. |
> |
GT |
|
<= |
LE |
|
>= |
GE |
Weisen beide Vergleichswerte der Bedingung einen numerischen Wert auf (Datentyp signed, unsigned oder float), so wird numerisch vergleichen. Ansonsten wird ein String-Vergleich gemacht. Bei einem numerischen Vergleich werden führende Nullen ignoriert, bei einem String-Vergleich nicht.
Die folgende Bedingung liefert "Wahr":
:IF "0" = "0"
Handelt es sich um keine numerischen Werte, so erfolgt ein alphanumerischer Vergleich.
Die folgende Bedingung liefert "Falsch":
:IF "0" = "abc"
Beim Vergleich von Zeichenfolgen wird nicht deren Länge geprüft. Die folgende Bedingung liefert "Falsch", da "A" im Alphabet vor "M" steht.
:IF "Smith" < "AE"
Sie müssen die Script-Variablen, die in der Bedingung vorkommen, schon vorher definieren.
Bei Bedingungen, die mehrmals das Schlüsselwort OR enthalten, kann sich abhängig vom Operator ein unterschiedliches Verhalten ergeben.
Beispiel:
In diesem Fall muss einer der Werte zutreffen, damit die Bedingung erfüllt wird.
:IF &WD# = "MON" OR "TUW" OR "WED"
Folgende Bedingung allerdings wird nur dann erfüllt, wenn die Variable keinem der drei Werte entspricht.
:IF &WD# <> "THU" OR "FRI" OR "SAT"
Nachgestellte Leerzeichen werden bei String-Vergleichen nicht berücksichtigt. Daher sind leere Strings immer gleich, unabhängig von deren Länge.
Beispiel:
:set &a= 'a '
:set &b= 'a'
:if &a = &b
:print 'true'
:endif
In diesem Fall würde der Vergleich von &a mit &b den Wert wahr zurückgeben, da nachgestellte Leerzeichen vor dem Vergleich entfernt werden.
Diese Beispiele zeigen verschiedene Möglichkeiten zur Formulierung der Bedingung. Die Beispiele 1 bis 3 setzen eine Script-Variable mit einem oder mehreren Vergleichswerten in Beziehung. Beispiel den Rückgabewert einer Script-Funktion aus.
:IF &USER# = "TSOS"
!...
:ENDIF
:IF &DAT1# = &DAT2# OR " "
!...
:ENDIF
:IF GET_ATT(OO)
= "J"
!...
:ENDIF
Siehe auch:
Script-Sprachmittel | Beschreibung |
---|---|
:SWITCH ... :CASE ... :ENDSWITCH | Überprüft, ob der Wert einer Variable bestimmten Werten entspricht, und führt abhängig davon unterschiedliche Anweisungen durch. |
Definition einer Schleife zur mehrfachen Ausführung von Script-Teilen. |
Script-Sprachmittel - Script-Aufbau und Prozessierung
Allgemeines zum Script
Script-Sprachmittel - Alphabetische Auflistung
Script-Sprachmittel -Funktionelle Gliederung
Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support |
Copyright © 2016 Automic Software GmbH |