SUR CETTE PAGE
for
Syntaxe
for name (expression) {
/* code */
}
for name (min ... max) {
/* code */
}
Description
Effectuez une itération à travers un ensemble d’entiers ou un ensemble de nœuds sans modifier le contexte, et exécutez un bloc d’instructions en utilisant chaque membre de l’entier ou de l’ensemble de nœuds comme valeur de la variable donnée.
S’il s’agit d’une expression XPath, chaque membre de l’ensemble de noeuds sélectionné par l’expression dans l’ordre est affecté à la variable. Si l’argument est un ensemble entier, l’opérateur d’itération (...) génère une séquence de noeuds avec la valeur de chaque entier entre les opérandes gauche et droit. Si l’opérande gauche est supérieur à l’opérande droit, les nombres sont générés par ordre décroissant. La variable prend la valeur de chaque entier dans l’ordre. Pour chaque itération, les contenus sont ensuite évalués, traités selon les instructions contenues dans le bloc de for code.
Attributs
expression |
XPath qui sélectionne les noeuds à traiter. |
max |
Entier ou variable qui définit la valeur de fin de la séquence d’entiers. Si la valeur de fin est inférieure à la valeur de départ, les nombres sont générés par ordre décroissant. |
min |
Entier ou variable qui définit la valeur de départ de la séquence d’entiers. Si la valeur de début est supérieure à la valeur de fin, les nombres sont générés par ordre décroissant. |
name |
Identificateur de la |
Exemple SLAX
Dans l’exemple suivant, la boucle effectue une for itération sur le interfaces noeud. L’expression XPath sélectionne chaque name noeud qui est un enfant du noeud et dont la interface valeur commence par l’indicateur 'ge-'. La sélection est affectée à la $name variable, qui est utilisée dans cette for itération du bloc de code de boucle. La for boucle génère un <name> élément pour chaque sélection. Le contenu de chaque <name> élément est le nom d’interface actuellement stocké dans la $name variable pour cette itération. Le résultat final est une liste de toutes les interfaces Gigabit Ethernet de l’appareil.
for $name (interfaces/interface[starts-with(name, 'ge-')]) {
<name> {
expr $name;
}
}
Dans l’exemple suivant, la boucle effectue une for itération sur les entiers 1 à 3 et la variable $int prend la valeur de chaque entier. Pour chaque itération, le bloc de code génère un <item> élément, qui contient l’attribut item-number avec une valeur égale à la valeur entière courante de $int.
for $int (1 ... 3) {
<item> {
attribute "item-number" {
expr $int;
}
}
}
/* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
Informations sur la version
Déclaration introduite dans la version 1.1 du langage SLAX, qui est prise en charge dans Junos OS version 12.2 et ultérieures.