Serj Kalichev 1 year ago
parent
commit
5dd43b4dae
1 changed files with 51 additions and 1 deletions
  1. 51 1
      docs/klish3.ru.md

+ 51 - 1
docs/klish3.ru.md

@@ -818,7 +818,7 @@ SEQ сам может быть элементом контейнера SWITCH.
 	</ACTION>
 </COMMAND>
 
-<COMMAND name="pytest" help="Test for Phyton script">
+<COMMAND name="pytest" help="Test for Python script">
 	<ACTION sym="script">#!/usr/bin/python
 	import os
 	print('ENV', os.getenv("KLISH_COMMAND"))
@@ -1186,12 +1186,62 @@ SEQ сам может быть элементом контейнера SWITCH.
 
 #### Атрибут `restore`
 
+Предположим текущий путь состоит из нескольких уровней. Т.е. оператор вошел во
+вложеный `VIEW`. Находясь во вложенном `VIEW`, оператору доступны команды не
+только текущего `VIEW`, но и всех родительских. Оператор вводит команду,
+определенную в родительском `VIEW`. Атрибут `restore` определяет, будет ли
+изменен текущий путь перед выполнением команды.
+
+Возможные значения атрибута `restore` - `true` или `false`. По умолчанию
+используется `false`. Это означает, что команда будет выполнена, а текущий путь
+останется прежним. Если `restore="true"`, то перед выполнением команды текущий
+путь будет изменен. Вложенные уровни пути будут сняты до уровня того `VIEW`, в
+котором определена введенная команда.
+
+Атрибут `restore` используется в элементе `COMMAND`.
+
+Поведение с восстановлением "родного" пути команды может быть использовано в
+системе, где режим конфигурирования реализован по принципу маршрутизаторов
+"Cisco". В таком режиме переход в одну секцию конфигурирования возможен не
+выходя заранее из другой - соседней секции. Для этого требуется предварительно
+сменить текущий путь, подняться до уровня вводимой команды, а затем сразу же
+перейти в новую секцию, но уже на основании текущего пути, соответствующего
+команде входа в новую секцию.
+
 
 #### Атрибут `order`
 
+Атрибут `order` определяет важен ли порядок при вводе объявленных друг за другом
+опциональных параметров. Предположим объявлены три идущих подряд опциональных
+параметра. По умолчанию `order="false"` и это означает, что оператор может
+ввести эти три параметра в произвольном порядке. Скажем, сначала третий, потом
+первый и за ним второй. Если на втором параметре стоит флаг `order="true"`, то
+введя сначала второй параметр, оператор уже не сможет ввести после него первый.
+Ему останется доступен только третий параметр.
+
+Атрибут `order` используется в элементе `PARAM`.
+
 
 #### Атрибут `filter`
 
+> Внимание: Фильтры пока не работают.
+
+Некоторые команды являются фильтрами. Это означает, что они не могут
+использоваться самостоятельно. Фильтры только обрабатывают вывод других команд.
+Фильтры указываются после основной команды и символа разделителя `|`. Фильтр
+не может быть использован до первого знака `|`. При этом команда, не
+являющаяся фильтром, не может быть использована после символа `|`.
+
+Атрибут `filter` может принимать значения `true` или `false`. По умолчанию
+используется `filter="false"`. Это означает, что команда не является фильтром.
+Если `filter="true"`, то команда объявляется фильтром.
+
+Атрибут `filter` редко используется в конфигах в явном виде. Введен тег `FILTER`,
+который объявляет команду, являющуюся фильтром. Кроме указанных ограничений по
+использованию фильтров, фильтры ничем не отличаются от обычных команд.
+
+Типичным примером фильтра является стандартная утилита "grep".
+
 
 #### Атрибуты `min` и `max`