Beruflich Dokumente
Kultur Dokumente
Estrutura de linha
RouterOS roteiro dividido em nmero de linhas de comando. As linhas de comando so
executados um por um at o final do script ou at ocorrer erro de execuo.
Linha de comando
Consola RouterOS utiliza seguinte sintaxe de comando:
[Prefixo] - ":" ou caractere "/" que indica se o comando ICE ou caminho. Pode ou pode
no ser necessria.
O final da linha de comando representado pelo smbolo ";" ou de nova linha. s vezes "," ou de
nova linha no necessrio para acabar com a linha de comando.
Comando nico dentro (), [] or {} no requer qualquer sinal de fim de comando. Fim de
comando determinada pelo contedo do roteiro inteiro
: If (true) = {fazer: colocar "lala"}
Cada linha de comando dentro de outra linha de comando inicia e termina com colchetes
"[]" (concatenao de comando) .
: Colocar [/ ip route get [encontrar porta de entrada = 1.1.1.1]];
: Colocar
/ Ip route chegar
Linha de comando pode ser construdo a partir de mais de uma linha fsica, seguindo as regras
juntando linha .
Linha Fsica
A linha fsica uma seqncia de caracteres terminada por um (EOL) seqncia de fim-delinha. Qualquer uma das sequncias de terminao de linha padro da plataforma pode ser
usado:
unix - LF ASCII;
Convenes padro C para caracteres de nova linha pode ser usada (o personagem n \).
Comentrios
Um comentrio comea com um caracter de hash (#) e termina no fim da linha fsica. Espaos
em branco ou quaisquer outros smbolos no so permitidos antes smbolo hash. Os comentrios
so ignorados pela sintaxe. Se o carter (#) aparecem corda dentro dele no considerado um
comentrio.
Exemplo
# Isto um comentrio
# Comentrio ruim
: Um mundial;
# Comentrio ruim
# Comentrio \
continuou - invlido (erro de sintaxe)
: Local de b falso;
entre "from = '' a '=' passo = '' = '' em fazer = '' else = '
Exemplo:
#incorrect:
: For i from = 1 a = 2 do = {: colocar US $ i}
sintaxe #correct:
: For i from = 1 a = 2 do = {: colocar US $ i}
: For i from = 1 a = 2 do = {: colocar US $ i}
#incorrect
/ Ip route adicionar porta de entrada = 3.3.3.3
#correct
/ Ip route adicionar porta de entrada = 3.3.3.3
Scopes
As variveis podem ser usados apenas em certas regies do script. Essas regies so chamadas
de escopos. mbito determina a visibilidade da varivel. Existem dois tipos de escopos
- globais e locais. Uma varivel declarada dentro de um bloco acessvel somente dentro desse
bloco e os blocos fechados por ela, e somente aps o ponto de declarao.
Escopo global
Escopo escopo ou raiz global escopo padro do script. Ele criado automaticamente e no pode
ser desligado.
mbito local
O usurio pode definir seus prprios grupos para bloquear o acesso a certas variveis, estes
mbitos so chamados escopos locais. Cada escopo local est entre chaves ("{}").
{
: Local, a 3;
{
: B local, 4;
: Colocar ($ a + $ b);
}
#line abaixo ir gerar erro
: Colocar ($ a + $ b);
No cdigo acima varivel b tem escopo local e no estar acessvel aps chaveta fechado.
Palavras-chave
As seguintes palavras so palavras-chave e no podem ser usados como nomes de variveis e de
funes:
ou no e em
Delimitadores
Os seguintes smbolos servem como delimitadores na gramtica:
() [] {}:;
$ /
Os tipos de dados
Linguagem de script RouterOS tem seguintes tipos de dados:
Tipo
Descrio
NUM (nmero)
bool (booleano)
str (string)
- Seqncia de caracteres;
ip
- Endereo IP;
IP6-prefix
- Prefixo IPv6
id (identificao interna)
- Valor hexadecimal prefixado por sinal '*'. Cada item do menu tem atribudo o nmero nico ID interno;
tempo
ordem
zero
\\
\N
\R
\T
\$
\?
\_
- Espao
\A
- BEL (0x07)
\B
- Backspace (0x08)
\F
\V
\ Xx
Carter impresso de valor hexadecimal. Nmero hexadecimal deve usar letras maisculas.
Exemplo
HELLO
This
is
a
test
Operadores
Operadores aritmticos
Operadores aritmticos usuais so suportados no RouterOS linguagem de script
Opearator
Descrio
Exemplo
"+"
Alm binrio
:put (3+4);
"-"
subtrao binria
:put (1-6);
"*"
multiplicao binria
:put (4*5);
"/"
diviso binria
"-"
negao unria
Nota: para a diviso de trabalho que voc tem que usar chaves ou
espaos em torno de dividendos assim que no confundido como
endereo IP
Operadores Relacionais
Opearator
Descrio
Exemplo
"<"
menos
:put (3<4);
">"
maior
:put (3>4);
"="
igual
:put (2=2);
"<="
inferior ou igual
"> ="
maior ou igual
"! ="
no igual
Operadores lgicos
Opearator
"!", "No"
Descrio
NO lgico
Exemplo
:put (!true);
"&&", "E"
E lgico
:put (true&&true)
"||", "Ou"
OU lgico
:put (true||false);
:put (1.1.1.1/32 in 1.0.0.0/8);
"Na"
Opearator
Descrio
Exemplo
:put
(~0.0.0.0)
"~"
inverso bit
"|"
OR bit a bit. Executa operao lgica OR em cada par de bits correspondentes. Em cada
par o resultado "1", se um dos bits ou ambos os bits forem "1", caso contrrio, o
resultado "0".
"^"
XOR. O mesmo que OR, mas o resultado em cada posio "1", se dois bits no so
iguais, e "0" se os bits so iguais.
"&"
AND bit a bit. Em cada par o resultado "1" se o primeiro e segundo bit "1". Caso
contrrio, o resultado "0".
"<<"
">>"
Os operadores de concatenao
Opearator
Descrio
Exemplo
:put (concatenate . .
string);
"."
","
possvel adicionar os valores das variveis para strings sem operador de concatenao:
: MinhaVar global "mundo";
: B local, 6;
: Colocar "5x6 = $ ($ a * $ b)";
Outros Operadores
Opearator
Descrio
Exemplo
"[]"
"()"
"$"
operador de substituio
"~"
"->"
Variveis
Linguagem de script tem dois tipos de variveis:
mundial - acessvel a partir de todos os scripts criados pelo usurio atual, definido
pelo mundial de palavras-chave;
local - acessvel apenas dentro do atual escopo , definido por local de palavra-chave.
Cdigo correto:
: MinhaVar local;
: Set minhaVar "meu valor";
: Colocar US $ myVar;
A exceo quando o uso de variveis definidas, por exemplo, por arrendamento-script DHCP
Script / sistema
add name = poltica myLeaseScript = \
ftp, reboot ler, escrever, poltica, teste, WinBox, password, sniff,
sensvel, api \
source = ": log info \ $ leaseActIP \ r \
\ N: log info \ $ leaseActMAC \ r \
\ N: log info \ $ leaseServerName \ r \
\ N: info log \ $ leaseBound "
: Local de meu-var;
Se a varivel inicialmente definida sem valor, em seguida, tipo de dados varivel definida
para zero, caso contrrio, o tipo de dados determinado automaticamente pelo mecanismo de
script. Por vezes, a converso de um tipo de dados para outro necessria. Ele pode ser
conseguida utilizando comandos de converso de dados . Exemplo:
corda #convert para array
: MyStr local "1,2,3,4,5";
: Colocar [: typeof $ myStr];
: MyArr locais [: ToArray $ myStr];
: Colocar [: typeof $ myArr]
Conjunto de comandos sem valor ser un-definir a varivel (retirar do meio ambiente, de novo na
v6.2)
#remove varivel de ambiente
: MinhaVar global "myValue"
: Set minhaVar;
Comandos
Os comandos globais
Cada comando global deve comear com ":" Sinal, caso contrrio ele ser tratado como varivel.
Comando
Sintaxe
Descrio
v ao menu raiz
..
Exemplo
global
:global myVar
"something"; :put $myVar;
local
bip
atraso
:delay <time>
colocar
:put <expression>
len
:len <expression>
typeof
:typeof <var>
escolher
:pick <var>
<start>[<end>]
log
warning"
tempo
:time <expression>
conjunto
encontrar
ambiente
:environment print
<start>
terminal
erro
:error <output>
analisar
:parse <expression>
resolver
:resolve <arg>
:put [:resolve
"www.mikrotik.com"];
ToArray
:toarray <var>
tobool
:tobool <var>
reumatide
:toid <var>
interna
ToIP
:toip <var>
toip6
:toip6 <var>
tonum
:tonum <var>
tostr
:tostr <var>
totime
:totime <var>
Sintaxe
Descrio
adicionar
add <param>=<value>..<param>=<value>
remover
remove <id>
permitir
enable <id>
incapacita
r
disable <id>
conjunto
impresso
print <param><param>=[<value>]
editar
encontrar
find <expression>
name~"ether"]
importao
Importar comando est disponvel no menu de raiz e usado para importar a configurao de
arquivos criados porexportao de comando ou escritas manualmente com a mo.
parmetros de impresso
Vrios parmetros esto disponveis para o comando de impresso:
Parmetro
Descrio
Exemplo
anexar
como valor
breve
detalhe
contar-only
arquivo
seguir
siga-only
a partir de
/user print
from=admin
intervalo
/interface print
interval=2
conciso
valor-lista
sempaginao
onde
expresses seguidos por onde o parmetro pode ser usado para filtrar entradas
emparelhadas
Mais do que um parmetro pode ser especificado em um momento, por exemplo, /ip route
Loops
Comando
Sintaxe
Descrio
do..while
executar
comandos
at que
determinada
condio
seja
atendida.
por
executar
comandos
ao longo de
um
determinado
nmero de
iteraes
foreach
executar
comandos
para cada
um dos
elementos
em lista
Instruo condicional
Comando
Sintaxe
se
Descrio
Se uma determinada condio true ,
ento executar comandos no do bloco,
caso contrrio executar comandos
na else quadra, se especificado.
Exemplo:
{
: MyBool locais verdadeiro;
: If ($ myBool = false) = {fazer: colocar "valor false"} else = {: colocar
"valor true"}
}
Funes
Linguagem de script no permite criar diretamente as funes, no entanto, pode escrever:
comando analisar como uma soluo alternativa.
A partir de uma nova sintaxe v6.2 adicionado para definir mais fcil tais funes e at mesmo
passar parmetros.Tambm possvel retornar o valor da funo com: comando de retorno.
sada:
Ol da funo
#pass argumentos para a funo
: MyFunc mundial do = {: colocar "arg a = $ a";
sada:
arg a = arg este um valor
arg '1' = esta valor arg1
passar o valor sem nome arg, arg, nesse caso, "1", "2", .. "n" so utilizados.
Retorno exemplo
: MyFunc mundial do = {: return ($ a + $ b)}
: Colocar [$ myFunc a = 6 b = 2]
sada:
8
Voc pode at mesmo clonar script existente do ambiente de script e us-lo como funo.
#Adicione roteiro
: Colocar US $ my2;
: Conjunto my2
: Colocar US $ my2}
Sada ser:
1.234
lala
valor global de 123
Nota: para chamar uma outra funo seu nome precisa ser declarado (o
mesmo que para as variveis)
: Colocar
"lala";}
falha: nome dns no existe
sada:
resolvedor falhou
lala
ay = 2};
"AX" = 1;
y = 2;
5} = {fazer:
y = 2}
y = 2}
Repositrio Script
Nvel sub-menu: /system script
Contm todos os scripts de usurio criada. Os scripts podem ser executados de vrias
maneiras diferentes:
Propriedade
Descrio
nome do script
Descrio
proprietrio (string)
run-count (integer)
Descrio
Executar script especificado por ID ou nome
Ambiente
Nvel sub-menu:
/system script environment
/environment
Contm todas as variveis definidas pelo usurio e seus valores atribudos.
[Admin @ MikroTik]>: exemplo global;
[Admin @ MikroTik]>: set exemplo 123
[Admin @ MikroTik]> / print ambiente
"Exemplo" = 123
Descrio
nome (string)
Nome da varivel
usurio (string)
valor ( )
Trabalho
Nvel sub-menu: /system script job
Lista de todos os scripts em execuo contm.
Leia apenas as propriedades de status:
Propriedade
proprietrio (string)
Descrio
Usurio roteiro que est sendo executado
poltica (array)
comeou (data)