Расширенный формат ввода команд и параметров предназначн, в основном, для пакетного запуске nsgsh из скриптов bash. Однако отдельные его элементы могут быть удобны и при интерактивной работе.
Допускается не только пошаговый переход от узла к узлу, но и ввод всего пути к нужному узлу или параметру целиком:
node1.node2...nodeNnode1.node2...nodeN.parameternode1.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–2026 | Отдел документации |