Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SLAX オペレーター

SLAXは、さまざまなオペレーターを提供し、SLAXスクリプト言語に優れた汎用性を追加します。 表 1 は、使用可能な演算子をまとめたものであり、それぞれの例と説明を示しています。

表 1:SLAX 演算子

名前

演算子

例・説明

また

+

var $result = 1 + 1;

オペランドの合計を返します。この例では、変数に値2を $result 割り当てます。

そして

&&

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

2 つの式を評価し、1 つのブール結果を返します。2 つの式のいずれかが 、 と評価される false場合、結合された式は false.

割り当て

=

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

変数またはパラメーターに値を割り当てるか、名前空間をプレフィックスに割り当てます。この例では、変数と$mtu2変更可能な変数の両方$mtuに値1500を割り当てます。$mtu2はもともと値48で初期化されました。

条件 付き

?:

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

評価された条件のブール値に基づいて条件付き割り当てを提供します。条件式が と true評価された場合、式全体がコロンの左側にあるオペランドの値と見なされます。条件式が と false評価される場合、式全体がオペランドの値をコロンの右にあると見なします。この演算子は、Junos OS リリース 12.2 以降でサポートされている SLAX 言語のバージョン 1.1 で導入されました。

この例では、変数 $a に格納されている値が10未満の場合は、 $result に格納された $b値が割り当てられます。それ以外の場合は、 $result に格納された $c値が割り当てられます。

部門

<output>$bit-count div 8;

左項を右項で割った結果を返す。除算の残りの部分が 0 以外の場合、結果は 10 進浮動小数点表記で表されます。この例では、変数を $bit-count 8 で除算し、バイト数を返します(初期化されている必要 $bit-count があります)。

平等

==

$mtu == 1500

左と右のオペランドの値が等しい場合は返 true します。そうでない場合、式は を返します false。この例では、 が 1500 に等しい場合 $mtu 、 式は ; に true解決されます。それ以外の場合は false を返します(初期化されている必要 $mtu があります)。

より大きい

>

$hop-count > 0

左オペランドの値が右オペランドの値より大きい場合は戻 true ります。そうでない場合は、式がを戻します false。この例では、 がゼロより大きい場合 $hop-count 、式が返されます true (初期化されている必要 $hop-count があります)。

より大きいか等しい

>=

$hop-count >= 1

true左オペランドの値が右オペランドの値以上である場合、それ以外の場合は式が戻りますfalse。この例では、 が 1 以上の場合$hop-count、式は(初期化されている必要があります$hop-count)を返しますtrue

不平等

!=

$mtu != 1500

左と右のオペランドの値が等しくない場合に戻 true ります。そうでない場合、式は を返します false。この例では、 が1500と等しくない場合 $mtu 、 式は; に true解決されます。それ以外の場合、式は戻ります false (初期化されている必要 $mtu があります)

イテレーション

...

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

左側のオペランドに等しい開始値と、右オペランドに等しい終了値で、整数値の範囲を繰り返します。左側のオペランドが右より大きい場合、数値は減少順に生成されます。オペレーターは、シーケンスをノード・セットとして生成する XPath 関数に変換します。この演算子は、Junos OS リリース 12.2 以降でサポートされている SLAX 言語のバージョン 1.1 で導入されました。

未満

<

$hop-count < 15

true左オペランドの値が右オペランドの値より小さい場合、それ以外の場合は式がを戻しますfalse。この例では、15 未満の場合$hop-count、式が返されますtrue(初期化されている必要$hop-countがあります)。

と同じまたはそれ以下

<=

$hop-count <= 14

true左項の値が右項の値以下である場合、それ以外の場合は式が戻りますfalse。この例では、14 以下の場合$hop-count、式が返されますtrue(初期化されている必要$hop-countがあります)。

モジュロ

Mod

<output> 10 mod 3;

2 つの数字の分割残りの部分を返します。この例では、式は値1を出力します。

乗算

*

<output> 5 * 10;

オペランドの積を返します。この例では、式は値50を出力します。

ノードセット、末尾に追加

+=

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

ステートメントで定義された可変変数に含まれるノードセットに値を mvar 追加します。この演算子は、Junos OS リリース 12.2 以降でサポートされている SLAX 言語のバージョン 1.1 で導入されました。

ノード セット変換

:=

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

結果ツリー フラグメントをノード セットに変換します。結果ツリー フラグメントには、解析されていない XML データ構造が含まれています。このデータ型から埋め込まれた XML 情報を取得することはできません。スクリプトは、結果ツリー フラグメントをノード セットに変換し、ノード セットを検索して適切な情報を検索して抽出できます。この演算子は、Junos OS リリース 9.2 以降のリリースでサポートされています。

または

||

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

2 つの式を評価し、1 つのブール結果を返します。2 つの式のいずれかが true と評価される場合、結合された式は true と評価されます。

かっこ

( )

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

複雑な式を作成します。括弧は、数式と同じように機能し、括弧内の式が最初に評価されます。括弧はネストできます。最も内側の括弧のセットが最初に評価され、次に次のセットが評価されます。

文字列連結

_(アンダースコア)

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

複数の文字列を連結します(SLAX で + 演算子を使用して文字列を結合することはできません)。この例では、「r1」で「HQ」$locationの場合$host-name、の$combined-string値は「r1が本社にあります」となっています。

減算

-

var $result = 64 - 14;

左項と右項の差を戻す。この例では、変数に値50を $result 割り当てます。

ユニナリーマイナス

-

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

オペランドの値をネゲートし、正の値を負の値に、負の値を正の値に変更します。この例では、 に格納された $number 値を無効にし、新しい値 -5 を変数に再割り当てします。

連合

|

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

2 つのノード セットの共用体を作成します。1 つのセットのすべてのノードは、2 番目のセット内のノードと組み合わせます。これは、スクリプトが複数のソースからプルされた XML ノード上で同様の操作を実行する必要がある場合に便利です。