SIXCORE

Como usar variáveis em script MikroTik RouterOS v7

No RouterOS, variáveis são usados principalmente em scripts para armazenar valores temporários — endereços IP, contadores, resultados de comandos — e reutilizá-los ao longo da execução. A linguagem de scripting do RouterOS tem sintaxe própria, diferente de linguagens como Bash ou Python.


Declaração e atribuição

 

Para declarar uma variável, usa-se :local (local) ou :global (global):

:local minhaVar “valor”
:global minhaGlobal 42

Para atribuir (ou reatribuir) um valor, usa-se :set:

:set minhaVar “novo valor”
:set minhaGlobal ($minhaGlobal + 1)

Para ler o valor, prefixe o nome com $:
:put $minhaVar

Variável Local (:local)

 

Existe apenas dentro do bloco/script onde foi declarada. Quando o script termina, ela é destruída. Ideal para cálculos intermediários, evitando poluição de memória.

:local ipAddr “192.168.1.1”
:local msg (“Endereço: ” . $ipAddr)
:put $msg
# Saída: Endereço: 192.168.1.1

Variável Global (:global)

 

Persiste entre execuções de scripts diferentes, enquanto o roteador estiver ligado (é apagada com reboot). Útil para passar dados entre scripts ou manter estado entre agendamentos.

# Script A — define a variável global

:global contadorAcessos
:set contadorAcessos ($contadorAcessos + 1)

# Script B — lê a mesma variável

:global contadorAcessos
:put (“Total de acessos: ” . $contadorAcessos)

Em qualquer script que queira usar uma variável global, é necessário declará-la com :global antes de acessá-la — mesmo que já tenha sido definida por outro script.

Comparativo rápido

 

Característica:local:global
EscopoApenas no script atualQualquer script
DuraçãoAté o fim da execuçãoAté o reboot
Declaração obrigatória em cada scriptSim
Uso indicadoLógica internaCompartilhar estado

Dica prática

Para inspecionar todas as variáveis globais ativas no momento, use o terminal:

/system script environment print

Compartilhe esse conteúdo