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 변경 가능한 변수 모두에 $mtu 값 1500을 할당합니다. 은(는) 원래 값 48로 초기화되었습니다. $mtu2

조건부

?:

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;

왼쪽 피연산자를 오른쪽 피연산자로 나눈 결과를 반환합니다. 나눗셈의 나머지가 0이 아닌 경우 결과는 10진수 부동 소수점 표기법으로 표현됩니다. 이 예제에서는 변수를 8로 나누어 $bit-count 바이트 수(초기화되어야 함 $bit-count )를 반환합니다.

평등

==

$mtu == 1500

왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 반환 true 하고, 그렇지 않으면 표현식false은 . 이 예제 $mtu 에서 같으면 식이 1500으로 true확인되고, 그렇지 않으면 false(초기화 필요)를 반환합니다.$mtu

보다 큼

>

$hop-count > 0

왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 반환 true 하고, 그렇지 않으면 표현식false은 . 이 예제에서 이(가) 0보다 크면 $hop-count 표현식은 (초기화되었어야 함$hop-count)을 반환합니다 true .

보다 크거나 같음

>=

$hop-count >= 1

왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같으면 반환 true 하고, 그렇지 않으면 표현식 false은 . 이 예제에서 이(가) 1 이상이면 $hop-count 표현식이 반환됩니다 true (초기화 필요 $hop-count ).

불평등

!=

$mtu != 1500

true 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 반환하고, 그렇지 않으면 표현식false은 . 이 예제에서 이$mtu(가) 1500과 같지 않으면 표현식은 로 true확인되고, 그렇지 않으면 표현식은 (초기화 필요$mtu)를 반환합니다 false

반복

...

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

시작 값이 왼쪽 피연산자와 같고 끝 값이 오른쪽 피연산자와 같은 정수 값 범위를 반복합니다. 왼쪽 피연산자가 오른쪽보다 크면 숫자가 내림차순으로 생성됩니다. 연산자는 시퀀스를 노드 집합으로 생성하는 XPath 함수로 변환됩니다. 이 연산자는 SLAX 언어 버전 1.1에서 도입되었으며, Junos OS 릴리스 12.2부터 지원됩니다.

미만

<

$hop-count < 15

왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 반환 true 하고, 그렇지 않으면 표현식은 을 반환합니다 false. 이 예제에서 이(가) 15보다 작으면 $hop-count 표현식이 반환됩니다 true (초기화 필요 $hop-count ).

보다 작거나 같음

<=

$hop-count <= 14

왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 반환 true 하고, 그렇지 않으면 표현식은 을 반환합니다false. 이 예제에서 이(가) 14 이하인 경우 $hop-count 표현식은 (초기화 필요$hop-count)를 반환합니다 true .

모듈로

모드

<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)

두 개의 표현식을 계산하고 하나의 부울 결과를 반환합니다. 두 표현식 중 하나가 true로 평가되면 결합된 표현식이 true로 평가됩니다.

괄호

 ( )

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

복잡한 표현식을 만듭니다. 괄호는 괄호 안의 식이 먼저 평가되는 수학 표현식과 동일한 방식으로 작동합니다. 괄호는 중첩될 수 있습니다. 가장 안쪽의 괄호 집합이 먼저 평가된 후 다음 집합이 평가되는 식입니다.

문자열 연결

_(밑줄)

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

여러 문자열을 연결합니다(SLAX에서 + 연산자를 사용하여 문자열을 결합할 수 없음). 이 예에서 가 "r1"이고 $location 가 "HQ"인 경우$host-name, 의 $combined-string 값은 "r1 is located at HQ"입니다.

빼기

-

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 노드에 대해 유사한 작업을 수행해야 하는 경우에 유용합니다.