Значение переменной вывести в название другой переменной.

Здесь выкладываем скрипты
23q
Сообщения: 57
Зарегистрирован: 16 май 2013, 11:21

Re: Значение переменной вывести в название другой переменной.

Сообщение 23q » 27 авг 2016, 14:04

vqd писал(а):
23q писал(а):сам спросил-сам ответил. :ne_vi_del:

Код: Выделить всё

:execute ":global $1";


execute это больше для отладки

Для подобных вещей существует :parse

Код: Выделить всё

[admin@Meg_Router] >  :global tmp test         
[admin@Meg_Router] > [:parse ":global $tmp 456"]
[admin@Meg_Router] > environment print         
test=456
tmp="test"

спасибо. после того, как мы ее таким образом создали, как потом новую переменную обработать в скрипте, например сравнив со значением?
vqd
Модератор
Сообщения: 3758
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Re: Значение переменной вывести в название другой переменной.

Сообщение vqd » 27 авг 2016, 14:31

не понял вопроса

Код: Выделить всё

[admin@Uzer-1100] > :global tmp test         
[admin@Uzer-1100] > [:parse ":global $tmp 456"]
[admin@Uzer-1100] > :put ($test > 500)           
false

Есть интересная задача и бюджет? http://mikrotik.site
23q
Сообщения: 57
Зарегистрирован: 16 май 2013, 11:21

Re: Значение переменной вывести в название другой переменной.

Сообщение 23q » 27 авг 2016, 15:43

vqd писал(а):не понял вопроса

Код: Выделить всё

[admin@Uzer-1100] > :global tmp test         
[admin@Uzer-1100] > [:parse ":global $tmp 456"]
[admin@Uzer-1100] > :put ($test > 500)           
false



допустим есть скрипт.

Код: Выделить всё

:global tmp test;
:log info $tmp
[:parse ":global $tmp 456"]
:if ($test > 500) do={log info 1} else={log info 2}

как сделать так, что-бы изменять в этом скрипте имя "test" только один раз, в строчке ":global tmp test;", а дальше все отработало как надо. В данном же случае нужно изменять это имя в двух строках: ":global tmp test;" и ":if ($test > 500) do={log info 1} else={log info 2}"
vqd
Модератор
Сообщения: 3758
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Re: Значение переменной вывести в название другой переменной.

Сообщение vqd » 27 авг 2016, 19:28

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

Не буду спрашивать зачем ибо как то сам писал скрипт который генерирует скрипт для системы агригации в зависимости от количества подключенных внешних каналов
Есть интересная задача и бюджет? http://mikrotik.site
ERge
Сообщения: 15
Зарегистрирован: 02 фев 2016, 03:52

Re: Значение переменной вывести в название другой переменной.

Сообщение ERge » 15 сен 2016, 22:33

может типа так?

Код: Выделить всё

[:parse ":if ($tmp > 500) do={log info 1} else={log info 2}"]


PS: не пойму только для чего такое вообще надо!?

Вернуться в «Готовые скрипты Mikrotik»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость