Добрый день.
Что-то запутался с переменным, есть кусок скрипта:
:global currentIP
if $MainIfInetOk do={
:global currentIP $RsrvIfAddress
}
Сейчас он работает, но до этого переменная была local, в результате присваивание внутри условия было, а как только выходили за границы условия, то переменная currentIP как бы очищалась. Просто для меня local было что это в рамках одного модуля (скрипта), а получается что нет...
Присвоение значения переменной в скрипте
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Не понял
local временная переменная которая создается на время выполнения скрипта и в конкретной сессии
global глобальная переменная значение в которой хранится до первой перезагрузки и доступна она из любого скрипта
local временная переменная которая создается на время выполнения скрипта и в конкретной сессии
global глобальная переменная значение в которой хранится до первой перезагрузки и доступна она из любого скрипта
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 10
- Зарегистрирован: 15 фев 2013, 06:05
Вот в том то и дело, что я тоже так думал.
Если делаю:
:local currentIP
if $MainIfInetOk do={
:local currentIP $RsrvIfAddress
/log info "*** $currentIP" #здесь показывает
}
/log info "*** $currentIP" #а здесь пусто
Или я не правильно присваиваю или лыжи не едут...
Если делаю:
:local currentIP
if $MainIfInetOk do={
:local currentIP $RsrvIfAddress
/log info "*** $currentIP" #здесь показывает
}
/log info "*** $currentIP" #а здесь пусто
Или я не правильно присваиваю или лыжи не едут...
-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Ну все правильно
Давайте смотреть
:local currentIP - Вот вы инициализировали вашу переменную в рамках сессии
if $MainIfInetOk do={
:local currentIP $RsrvIfAddress - а вот тут вы ее же инициализируете но в рамках do={} Естественно после выполнения условия она перестает существовать
/log info "*** $currentIP" #здесь показывает
}
/log info "*** $currentIP" #а здесь пусто - а тут ее уже не существует по сути
Если вам в условии надо поместить в переменную значение то
:set currentIP $RsrvIfAddress
Давайте смотреть
:local currentIP - Вот вы инициализировали вашу переменную в рамках сессии
if $MainIfInetOk do={
:local currentIP $RsrvIfAddress - а вот тут вы ее же инициализируете но в рамках do={} Естественно после выполнения условия она перестает существовать
/log info "*** $currentIP" #здесь показывает
}
/log info "*** $currentIP" #а здесь пусто - а тут ее уже не существует по сути
Если вам в условии надо поместить в переменную значение то
:set currentIP $RsrvIfAddress
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 10
- Зарегистрирован: 15 фев 2013, 06:05
ясно, спасибо, так всё работает.
думаю же что что-то не то делаю...
думаю же что что-то не то делаю...