Язык RouterOS Script

В системе RouterOS предусмотрена возможность создания и выполнения произвольных скриптов на языке RouterOS Scripting, которым отведен специальный раздел в /system script. Раздел включает три директории:

  • ./script — директория для хранения файлов скриптов
  • ./job — директория для отображения скриптов, выполняемых в текущий момент
  • ./environment — директория с отображением переменных окружения

Основы

Скрипт представляет из себя текст, который может включать команды и комментарии.

Комментарии #

Комментарий использует всю строку, которая начинается с символа  # , и перед которым ничего не должно быть, включая пробелы и табуляции.

Команды

Команда начинается символом  :  или  /  и заканчивается символом  ; . Команда использует строку целиком, а если команда разбита на несколько строк, в конце предшествующей строки используется соединительный символ  \ .

Многие команды используют параметры, которые следуют за именем команды.

Для каскадного использования команды в параметре другой команды ее обрамляют квадратными скобками  [  и  ] .

Области скрипта

По умолчанию скрипт образует глобальную область, в которой могут находится любые команды. Фигурными скобками  {  и  }  можно выделять локальные области любой глубины вложенности, которые тоже могут содержать любые команды.

Переменные

Переменная — это именованная область данных, значение которой доступно для команд скрипта. Правила определения имени:

  • IPv4 — могут включать буквы и цифры
  • «br-local» — могут включить знаки и другие символы в двойных кавычках
  • vAR — чувствительны к регистру

Переменные не типизируются, но значения переменных могут принадлежать типам:

  • num — 64 битное знаковое целое. может быть инициализировано шестнадцатиричным значением
  • bool — булев тип. может быть true или false
  • str — строковый тип. последовательность символов
  • ip — IP адрес
  • ip6-prefix — IPv6 префикс
  • id — шестнадцатиричное значение с префиксом *. Каждая позиция меню имеет уникальный внутрений ID
  • time — дата и время
  • array — последовательность значений, массив
  • nil — тип переменной по умолчанию, если она не инициализирована никаким значением
  • 4096B — предельно допустимый размер данных переменной

Переменные могут быть глобальными и локальными, в зависимости от области декларирования и команды  :global  или  :local . Попытка декларировать глобальную переменную в локальной области приведет к ошибке.

Значение переменной устанавливается командой  :set  из константы, выражения или значения другой переменной. Команда  :set   без значения отменяет декларацию переменной и делает ее недоступной.

Команда  :put  выводит значения переменной в консоль.

///

Источники

Добавить комментарий