for
통사론
for name (expression) { /* code */ }
for name (min ... max) { /* code */ }
묘사
컨텍스트를 변경하지 않고 정수 집합 또는 노드 집합을 반복하고 정수 또는 노드 집합의 각 멤버를 주어진 변수의 값으로 사용하여 문 블록을 실행합니다.
인수가 XPath 표현식인 경우, 변수는 표현식에 의해 선택된 노드 세트의 각 멤버에 순서대로 지정됩니다. 인수가 정수 집합인 경우 반복 연산자(...)는 왼쪽과 오른쪽 피연산자 사이의 각 정수 값을 사용하여 노드 시퀀스를 생성합니다. 왼쪽 피연산자가 오른쪽 피연산자보다 크면 숫자가 내림차순으로 생성됩니다. 변수는 순서대로 각 정수의 값을 취합니다. 각 반복에 대해 내용이 평가되고 코드 블록에 포함된 지침에 따라 처리됩니다 for
.
특성
expression |
처리할 노드를 선택하는 XPath 식입니다. |
max |
정수 시퀀스의 끝 값을 정의하는 정수 또는 변수입니다. 끝 값이 시작 값보다 작으면 숫자가 내림차순으로 생성됩니다. |
min |
정수 시퀀스의 시작 값을 정의하는 정수 또는 변수입니다. 시작 값이 끝 값보다 크면 숫자가 내림차순으로 생성됩니다. |
name |
루프 변수의 |
SLAX 예시
다음 예제에서는 루프가 for
노드를 반복합니다interfaces
. XPath 표현식은 노드의 interface
자식이고 'ge-' 지정자로 시작하는 값을 가진 각 name
노드를 선택합니다. 선택 항목은 루프 코드 블록의 해당 반복 내에서 사용되는 변수에 할당 $name
됩니다for
. 루프는 for
각 선택에 <name>
대한 요소를 출력합니다. 각 <name>
요소의 내용은 해당 반복에 대한 변수에 $name
현재 저장된 인터페이스 이름입니다. 최종 결과는 디바이스의 모든 기가비트 이더넷 인터페이스 목록입니다.
for $name (interfaces/interface[starts-with(name, 'ge-')]) { <name> { expr $name; } }
다음 예제에서 루프는 for
1부터 3까지의 정수를 반복하고 변수는 $int
각 정수 값을 가정합니다. 각 반복에 대해 코드 블록은 현재 정수 값$int
과 같은 값을 가진 특성을 item-number
포함하는 요소를 생성합니다<item>
.
for $int (1 ... 3) { <item> { attribute "item-number" { expr $int; } } } /* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
릴리스 정보
Junos OS 릴리스 12.2 이상에서 지원되는 SLAX 언어 버전 1.1에서 소개된 명령문입니다.