Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX-Operatoren

SLAX bietet eine Vielzahl von Operatoren, die der SLAX-Skriptsprache eine große Vielseitigkeit verleihen. Tabelle 1 fasst die verfügbaren Operatoren zusammen und enthält jeweils ein Beispiel und eine Erläuterung.

Tabelle 1: SLAX-Operatoren

Namen

Operator

Beispiel / Erklärung

Hinaus

+

var $result = 1 + 1;

Gibt die Summe der Operanden zurück. In diesem Beispiel wird der $result Variablen der Wert 2 zugewiesen.

Und

&&

($byte-count > 500000) && ($byte-count < 1000000)

Werten Sie zwei Ausdrücke aus und geben Sie ein boolesches Ergebnis zurück. Wenn einer der beiden Ausdrücke zu falseausgewertet wird, wird der kombinierte Ausdruck zu falseausgewertet.

Zuordnung

=

var $mtu = 1500;
mvar $mtu2 = 48;
set $mtu2 = 1500;

Weisen Sie einer Variablen oder einem Parameter einen Wert oder einem Präfix einen Namespace zu. Im Beispiel wird sowohl der Variablen als auch der $mtu $mtu2 veränderlichen Variablen der Wert 1500 zugewiesen. $mtu2 wurde ursprünglich mit dem Wert 48 initialisiert.

Bedingte

?:

var $result = ($a < 10) ? $b : $c;

Geben Sie eine bedingte Zuweisung basierend auf dem booleschen Wert der ausgewerteten Bedingung an. Wenn der Bedingungsausdruck zu trueausgewertet wird, nimmt der gesamte Ausdruck den Wert des Operanden links vom Doppelpunkt an. Wenn der bedingte Ausdruck zu falseausgewertet wird, nimmt der gesamte Ausdruck den Wert des Operanden rechts vom Doppelpunkt an. Dieser Operator wurde in Version 1.1 der SLAX-Sprache eingeführt, die ab Junos  OS Version 12.2 unterstützt wird.

Wenn im Beispiel der in der Variablen $a gespeicherte Wert kleiner als 10 ist, wird dem in gespeicherten $bWert zugewiesen. $result Andernfalls wird der in gespeicherte $result Wert zugewiesen$c.

Aufteilung

Div

<output>$bit-count div 8;

Gibt das Ergebnis der Division des linken Operanden durch den rechten Operanden zurück. Wenn der Rest der Division ungleich Null ist, wird das Ergebnis in dezimaler Gleitkommanotation ausgedrückt. Im Beispiel wird die $bit-count Variable durch acht geteilt und die Byteanzahl zurückgegeben (erfordert, dass sie $bit-count initialisiert wurde).

Gleichheit

==

$mtu == 1500

Rückgabe true , wenn die Werte des linken und rechten Operanden gleich sind, andernfalls gibt falseder Ausdruck . Wenn im Beispiel $mtu gleich 1500 ist, wird der Ausdruck in true; aufgelöst, andernfalls wird false zurückgegeben (erfordert, dass initialisiert $mtu wurde).

Größer als

>

$hop-count > 0

Gibt zurück true , wenn der Wert des linken Operanden größer als der Wert des rechten Operanden ist, andernfalls gibt falseder Ausdruck . Wenn in diesem Beispiel $hop-count größer als Null ist, wird der Ausdruck zurückgegeben true (erfordert, dass er $hop-count initialisiert wurde).

Größer oder gleich

>=

$hop-count >= 1

Rückgabe true , wenn der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist; andernfalls gibt falseder Ausdruck . Wenn in diesem Beispiel 1 oder größer ist, $hop-count wird der Ausdruck zurückgegeben true (erfordert, dass er $hop-count initialisiert wurde).

Ungleichheit

!=

$mtu != 1500

Rückgabe, true wenn die Werte des linken und rechten Operanden nicht gleich sind; andernfalls gibt falseder Ausdruck . Wenn im Beispiel $mtu nicht 1500 ist, wird der Ausdruck in true; aufgelöst, andernfalls gibt der Ausdruck zurück false (erfordert, dass $mtu initialisiert wurde)

Iteration

...

for $i (1 ... 10) { 
  <player number=$i>;
}

Durchlaufen Sie einen Bereich von ganzzahligen Werten mit einem Startwert, der dem linken Operanden entspricht, und einem Endwert, der dem rechten Operanden entspricht. Wenn der linke Operand größer als der rechte ist, werden die Zahlen in absteigender Reihenfolge generiert. Der Operator wird in eine XPath-Funktion übersetzt, die die Sequenz als Node-Set generiert. Dieser Operator wurde in Version 1.1 der SLAX-Sprache eingeführt, die ab Junos OS Version 12.2 unterstützt wird.

Weniger als

<

$hop-count < 15

Gibt zurück true , wenn der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist. Andernfalls gibt falseder Ausdruck . Wenn in diesem Beispiel $hop-count der Wert kleiner als 15 ist, wird der Ausdruck zurückgegeben true (erfordert, dass er $hop-count initialisiert wurde).

Kleiner oder gleich

<=

$hop-count <= 14

Gibt zurück true , wenn der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Andernfalls gibt falseder Ausdruck . Wenn in diesem Beispiel 14 oder weniger ist, $hop-count wird der Ausdruck zurückgegeben true (erfordert, dass er $hop-count initialisiert wurde).

Modulo

Mod

<output> 10 mod 3;

Gibt den Divisionsrest von zwei Zahlen zurück. In diesem Beispiel gibt der Ausdruck den Wert 1 aus.

Multiplikation

*

<output> 5 * 10;

Gibt das Produkt der Operanden zurück. In diesem Beispiel gibt der Ausdruck den Wert 50 aus.

Knotensatz, Anhängen an

+=

mvar $block = <block> "start here";
append $block += <block> "next block";

Hängen Sie einen Wert an eine Knotengruppe an, die in einer veränderlichen Variablen enthalten ist, die mit der mvar Anweisung definiert wird. Dieser Operator wurde in Version 1.1 der SLAX-Sprache eingeführt, die ab Junos  OS Version 12.2 unterstützt wird.

Konvertierung von Knotensätzen

:=

var $new-node-set := $rtf-variable;

Konvertieren Sie ein Ergebnisstrukturfragment in einen Knotensatz. Ein Ergebnisstrukturfragment enthält eine nicht analysierte XML-Datenstruktur. Es ist nicht möglich, eingebettete XML-Informationen aus diesem Datentyp abzurufen. Ein Skript kann das Ergebnisstrukturfragment in eine Knotenmenge konvertieren und dann die Knotenmenge nach den entsprechenden Informationen durchsuchen und extrahieren. Dieser Operator wird in Junos OS Version 9.2 und höheren Versionen unterstützt.

Oder

||

($mtu-size != 1500) || ($mtu-size > 2000)

Werten Sie zwei Ausdrücke aus und geben Sie ein boolesches Ergebnis zurück. Wenn einer der beiden Ausdrücke als wahr ausgewertet wird, wird der kombinierte Ausdruck als wahr ausgewertet.

Klammern

 ( )

var $result = ( $byte-count * 8 ) + 150;

Erstellen Sie komplexe Ausdrücke. Klammern funktionieren genauso wie in einem mathematischen Ausdruck, bei dem der Ausdruck innerhalb der Klammern zuerst ausgewertet wird. Klammern können verschachtelt werden. Der innerste Satz von Klammern wird zuerst ausgewertet, dann der nächste Satz usw.

Zeichenfolgen-Verkettung

_(Unterstrich)

var $combined-string = $host-name _ " is located at “ _ $location;

Verketten Sie mehrere Zeichenfolgen (beachten Sie, dass Zeichenfolgen nicht mit dem +-Operator in SLAX kombiniert werden können). Wenn im Beispiel "r1" und $location "HQ" ist, $host-name dann ist der Wert von $combined-string "r1 befindet sich im HQ".

Subtraktion

-

var $result = 64 - 14;

Gibt die Differenz zwischen dem linken und dem rechten Operanden zurück. In diesem Beispiel wird der $result Variablen der Wert 50 zugewiesen.

Unäres Minus

-

mvar $number = 5.
set $number = - $number;

Negieren Sie den Wert des Operanden, indem Sie einen positiven Wert in einen negativen Wert oder einen negativen Wert in einen positiven Wert ändern. Im Beispiel wird der in $number gespeicherte Wert negiert und der Variablen der neue Wert -5 zugewiesen.

Union

|

var $all-interface-nodes = $fe-interface-nodes | $ge-interface-nodes;

Erstellen Sie eine Vereinigung von zwei Knotengruppen. Alle Knoten aus einem Satz werden mit den Knoten aus dem zweiten Satz kombiniert. Dies ist nützlich, wenn ein Skript einen ähnlichen Vorgang über XML-Knoten ausführen muss, die aus mehreren Quellen abgerufen werden.