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)

评估两个表达式,并返回一个布尔结果。如果这两个表达式中的任何一个都评估为 false,则组合表达式评估为 false

分配

=

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

为变量或参数分配值,或将名称空间分配给前缀。该示例为变量和$mtu2可变变$mtu2分配值 1500$mtu。 最初初始化时值为 48。

条件

?:

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

根据评估条件的布尔值提供有条件分配。如果条件表达式评估为 true,则整个表达式将承担结肠左侧操作的价值。如果条件表达式评估为 false,则整个表达式将承担结肠右侧操作的价值。此操作员采用 SLAX 语言版本 1.1 引入,该版本支持从 Junos OS 版本 12.2 开始。

在示例中,如果变量 $a 中存储的值小于 10, $result 则会分配存储在 中的 $b值。否则, $result 将分配存储在 中的 $c值。

划分

Div

<output>$bit-count div 8;

返回将左侧歌剧除以右侧歌剧的结果。如果分段的其余部分为非零,则结果以小数浮动点符号表示。该示例将变量除以 $bit-count 8,返回字节计数(需要 $bit-count 已初始化)。

平等

==

$mtu == 1500

如果左右两侧的操作员的值相等,则返回 true ;否则,表达式将返回 false。在示例中,如果 $mtu 等于 1500,则表达式解析为 true;否则,会返回错误(需要 $mtu 已初始化)。

大于

>

$hop-count > 0

如果左剧的价值大于右侧歌剧的价值,则返回 true ;否则,表达式将返回 false。在此示例中,如果 $hop-count 大于零,则表达式返回 true (需要 $hop-count 已初始化)。

大于或等于

>=

$hop-count >= 1

如果左侧歌剧的价值大于或等于右侧歌剧的价值,则返回 true ;否则,表达式将返回 false。在此示例中,如果 $hop-count 为 1 或更高,则表达式返回 true (需要 $hop-count 已初始化)。

不等式

!=

$mtu != 1500

如果左右两侧的操作员的值不相等,则返回 true ;否则,表达式返回 false。在示例中,如果 $mtu 等于 1500,则表达式解析为 true;否则,表达式返回 false (要求 $mtu 已初始化)

迭 代

...

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

通过一系列整数值迭代,入门值等于左手,终端值等于右侧操作。如果左侧的操作大于右侧,则数字的生成顺序会越来越低。操作员转换为 XPath 功能,以节点设置生成序列。此操作员采用 SLAX 语言版本 1.1 引入,该版本支持从 Junos OS 版本 12.2 开始。

少于

<

$hop-count < 15

如果左侧歌剧的价值小于右侧歌剧的价值,则返回 true ;否则,表达式将返回 false。在此示例中,如果 $hop-count 不到 15,则表达式返回 true (需要 $hop-count 已初始化)。

小于或等于

<=

$hop-count <= 14

如果左侧歌剧的价值小于或等于右侧歌剧的价值,则返回 true ;否则,表达式将返回 false。在此示例中,如果 $hop-count 为 14 或更低,则表达式返回 true (需要 $hop-count 已初始化)。

国防部

<output> 10 mod 3;

返回两个数字的分段剩余部分。在此示例中,表达式输出值为 1。

乘法

*

<output> 5 * 10;

退回歌剧产品。在此示例中,表达式输出值为 50。

节点集,附录到

+=

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

将值附加到可变变量中包含的节点集,该变量使用语句定义 mvar 。此操作员采用 SLAX 语言版本 1.1 引入,该版本支持从 Junos OS 版本 12.2 开始。

节点集转换

:=

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

将结果树片段转换为节点集。结果树分片包含无与伦比的 XML 数据结构。无法从此数据类型检索任何嵌入式 XML 信息。脚本可将结果树片段转换为节点集,然后搜索节点集以获取适当的信息并将其提取。Junos OS 版本 9.2 和更高版本支持此操作员。

||

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

评估两个表达式,并返回一个布尔结果。如果这两个表达式中的任何一个都评估为真实,则组合表达式将评估为真实。

括号

( )

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

创建复杂的表达式。括号的功能方式与数学表达式相同,其中括号内的表达式首先进行评估。括号可以嵌套;最内层的括号先评估,再评估下一组,等等。

字符串串联

_(分数不足

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

串联多个字符串(请注意,字符串不能使用 SLAX 中的 + 操作员组合)。在示例中,如果 $host-name 是“r1”,是 $location “HQ”,则 $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;

创建两个节点集的联合。一组的所有节点与第二组中的节点组合在一起。当脚本需要对从多个来源提取的 XML 节点执行类似的操作时,这很有用。