Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Opérateurs SLAX

SLAX fournit une variété d’opérateurs, ce qui ajoute une grande polyvalence au langage de script SLAX. Le tableau 1 résume les opérateurs disponibles et fournit un exemple et une explication de chacun.

Tableau 1 : opérateurs SLAX

Nom

Opérateur

Exemple /Explication

Plus

+

var $result = 1 + 1;

Renvoyer la somme des opérandes. Cet exemple attribue une valeur 2 à la $result variable.

Et

&&

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

Évaluez deux expressions et renvoyez un résultat booléen. Si l’une des deux expressions évalue à false, alors l’expression combinée évalue à false.

Affectation

=

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

Attribuez une valeur à une variable ou un paramètre ou assignez un espace de noms à un préfixe. L’exemple attribue une valeur de 1 500 à la $mtu variable et à la $mtu2 variable mutable. $mtu2 Elle a été initialement initialisée avec une valeur de 48.

Conditionnelle

?:

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

Fournissez une attribution conditionnelle en fonction de la valeur booléenne de la condition évaluée. Si l’expression conditionnelle évalue à true, l’expression entière suppose la valeur de l’opérande à gauche du côlon. Si l’expression conditionnelle évalue à false, l’expression entière suppose la valeur de l’opérande à la droite du côlon. Cet opérateur a été introduit dans la version 1.1 du langage SLAX, qui est prise en charge à partir de Junos  OS version 12.2.

Dans l’exemple, si la valeur stockée dans la variable $a est inférieure à 10, $result la valeur stockée dans $b. Dans le cas contraire, $result la valeur stockée dans $c.

Division

Div

<output>$bit-count div 8;

Renvoyez le résultat de la division de l’opérande gauche par l’opérande de droite. Si le reste de la division n’est pas nul, le résultat est exprimé en notation décimale à virgule flottante. L’exemple divise la $bit-count variable par huit, en renvoyant le nombre d’octets (nécessite une $bit-count initialisation).

Égalité

==

$mtu == 1500

Renvoyez true si les valeurs des opérandes gauche et droite sont égales; sinon, l’expression renvoie false. Dans l’exemple, si $mtu elle est égale à 1 500, alors l’expression se résout à true; sinon, elle renvoie false (nécessite que l’on $mtu ait initialisé).

Plus que

>

$hop-count > 0

Renvoyez true si la valeur de l’opérande gauche est supérieure à la valeur de l’opérande de droite ; sinon, l’expression renvoie false. Dans cet exemple, si $hop-count elle est supérieure à zéro, l’expression renvoie true (nécessite que l’initialisation $hop-count ait été réalisée).

Supérieur ou égal à

>=

$hop-count >= 1

Renvoyez true si la valeur de l’opérande gauche est supérieure ou égale à la valeur de l’opérande droit ; sinon, l’expression renvoie false. Dans cet exemple, si $hop-count elle est 1 ou supérieure, l’expression retourne true (nécessite que l’on $hop-count ait initialisé).

Inégalité

!=

$mtu != 1500

Renvoyez true si les valeurs des opérandes gauche et droite ne sont pas égales; sinon, l’expression renvoie false. Dans l’exemple, si $mtu elle n’est pas égale à 1 500, alors l’expression se résout à true; sinon, l’expression renvoie false (nécessite que l’on $mtu ait initialisé)

Itération

...

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

Itérer à travers une plage de valeurs entières avec une valeur de début égale à l’opérande gauche et une valeur fin égale à l’opérande droit. Si l’opérande gauche est supérieure à la droite, les nombres sont générés dans l’ordre décroissant. L’opérateur traduit en une fonction XPath qui génère la séquence sous la forme d’un ensemble de nœuds. Cet opérateur a été introduit dans la version 1.1 du langage SLAX, qui est prise en charge à partir de Junos OS version 12.2.

Moins de

<

$hop-count < 15

Renvoyez true si la valeur de l’opérande gauche est inférieure à la valeur de l’opérande de droite ; sinon, l’expression renvoie false. Dans cet exemple, si $hop-count elle est inférieure à 15, l’expression renvoie true (requiert une $hop-count initialisation).

Inférieur ou égal à

<=

$hop-count <= 14

Renvoyez true si la valeur de l’opérande gauche est soit inférieure ou égale à la valeur de l’opérande de droite ; sinon, l’expression renvoie false. Dans cet exemple, si $hop-count elle est de 14 ou moins, l’expression renvoie true (requiert que l’initialisation $hop-count soit requise).

Modulo

Mod

<output> 10 mod 3;

Renvoyer le reste de la division des deux numéros. Dans cet exemple, l’expression affiche une valeur 1.

Multiplication

*

<output> 5 * 10;

Renvoyer le produit des opérandes. Dans cet exemple, l’expression affiche une valeur de 50.

Ensemble de nœuds, ajoutez à

+=

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

Ajoutez une valeur à un ensemble de nœuds contenu dans une variable mutable, définie avec l’instruction mvar . Cet opérateur a été introduit dans la version 1.1 du langage SLAX, qui est prise en charge à partir de Junos  OS version 12.2.

Conversion des ensembles de nœuds

:=

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

Convertir un fragment d’arbre de résultats en un ensemble de nœuds. Un fragment d’arbre de résultats contient une structure de données XML nonparée. Il n’est pas possible de récupérer les informations XML intégrées à partir de ce type de données. Un script peut convertir le fragment d’arbre de résultats en un ensemble de nœuds, puis rechercher les informations appropriées et les extraire. Cet opérateur est pris en charge dans Junos OS version 9.2 et versions ultérieures.

Ou

||

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

Évaluez deux expressions et renvoyez un résultat booléen. Si l’une des deux expressions est évaluée à vrai, alors l’expression combinée évalue à vrai.

Parenthèses

( )

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

Créez des expressions complexes. Les parenthèses fonctionnent de la même manière que dans une expression mathématique, où l’expression dans les parenthèses est évaluée en premier. Les parenthèses peuvent être imbriquées; l’ensemble le plus interne de parenthèses est évalué d’abord, puis l’ensemble suivant, et ainsi de suite.

Concaténation de chaînes

_(sous-score)

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

Concaténer plusieurs chaînes (notez que les chaînes ne peuvent pas être combinées à l’aide de l’opérateur + dans SLAX). Dans l’exemple, si $host-name est « r1 » et $location est « QG », alors la valeur de $combined-string est « r1 est située au QG ».

Soustraction

-

var $result = 64 - 14;

Renvoyez la différence entre l’opérande gauche et l’opérande droite. Cet exemple attribue une valeur 50 à la $result variable.

Unary Moins

-

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

Annuler la valeur de l’opérande, en changeant une valeur positive en une valeur négative ou une valeur négative en une valeur positive. L’exemple annule la valeur stockée et $number réattribue la nouvelle valeur de -5 à la variable.

Union

|

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

Créez une union de deux ensembles de nœuds. Tous les nœuds d’un ensemble se combinent avec les nœuds du deuxième ensemble. Cela est utile lorsqu’un script doit effectuer une opération similaire sur des nœuds XML extraits de sources multiples.