Расширенный формат ввода команд и параметров предназначн, в основном, для пакетного запуске nsgsh из скриптов bash. Однако отдельные его элементы могут быть удобны и при интерактивной работе.
Допускается не только пошаговый переход от узла к узлу, но и ввод всего пути к нужному узлу или параметру целиком:
node1.node2...nodeN
node1.node2...nodeN.parameter
node1.node2...nodeN.parameter=значение
.
и =
не являются спецсимволами и могут вводиться как есть.node1.node2...nodeN.parameter.значение
.
и =
, то их необходимо вводить в виде esc-последовательностей \.
и \=
, либо заключить всё значение в кавычки (двойные или одинарные). Это устаревший формат, поддерживаемый для совместимости с ранними версиями NSG Linux 2.0.x; использовать его в новых конфигурациях не рекомендуется..node1.node2...nodeN
..
...
и т.п.
..node1.node2...nodeN
и т.п.
Аналогично для ввода параметров.
Названия параметров и названия узлов дерева, как и значения параметров, могут содержать спецсимволы. В этом случае для них действуют те же правила ввода, что и для строковых параметров — т.е. проблемный узел вводится в кавычках или с использованием esc-последовательностей. Без особой необходимости такие названия употреблять не следует, но если есть такая потребность, то это не запрещается, например:
.tunnel.ipsec.connections."Kolxoz \"Krasnyi Konoplevod\"".leftid=Pravlenie\ Kolxoza
В одной строке допускается вводить несколько команд, разделяя их пробелами и/или точкой с запятой (в любом сочетании), например:
nsg:port.m1> type="3g" ppp.main.chat.APN=access.point.name; ppp.main.chat.mode=GSMEnter
В этом случае команды исполняются последовательно, как если бы между ними нажималась клавиша Enter
. Иначе говоря, последующие команды могут быть зависимыми от предыдущих (а также от установок, вытекающих из них по умолчанию). В приведённом примере существенно то, что первым устанавливается тип порта 3g
и следующая из него инкапсуляция ppp
; только после этого в дереве появляются специфические для PPP узлы и параметры, которые отрабатываются второй и третьей командами. При вводе команд в обратной последовательности они не выполнятся.
Переход в некоторый узел и исполнение нескольких команд в нём. Например, приведённая выше последовательность команд может быть записана так:
nsg:port.m1> type="3g" ppp.main.chat(APN=access.point.name mode=GSM)Enter
Следует обратить внимание, что открывающая скобка одновременно заменяет собой точку. Перед скобками и после них допускаются пробелы.
Допускается многоуровневая вложенность:
nsg:port > m1(type="3g" ppp.main(chat(APN=access.point.name; mode=GSM) set-defaultroute=true))Enter
Последней командой в строке или в подстроке (в скобках) может быть как установка параметра, так и переход в некоторый узел. Если же переход в узел стоит не последним, то следующая команда будет исполнена от исходного узла, и сделанный ранее переход будет забыт.
Аналогичным образом могут исполняться системные команды в заданном узле. Кроме того, для ряда команд возможен ещё один формат:
node1.node2...nodeN._print
=node1.node2...nodeN
=
node1.node2...nodeN._show
==node1.node2...nodeN
==
node1.node2...nodeN._manual
?node1.node2...nodeN
?
node1.node2...nodeN._new=имя
node1.node2...nodeN._insert=имя
+node1.node2...nodeN.имя
+имя
+node1.node2...nodeN._new
+node1.node2...nodeN._insert
+
node1.node2...nodeN.имя._remove
-node1.node2...nodeN
-node1.node2...nodeN.имя
-
© Network Systems Group 2015–2024 | Отдел документации |