Страница 1 из 1
Присвоение значения переменной в скрипте
Добавлено: 18 авг 2014, 12:14
mvp
Добрый день.
Что-то запутался с переменным, есть кусок скрипта:
:global currentIP
if $MainIfInetOk do={
:global currentIP $RsrvIfAddress
}
Сейчас он работает, но до этого переменная была local, в результате присваивание внутри условия было, а как только выходили за границы условия, то переменная currentIP как бы очищалась. Просто для меня local было что это в рамках одного модуля (скрипта), а получается что нет...
Re: Присвоение значения переменной в скрипте
Добавлено: 18 авг 2014, 12:18
vqd
Не понял
local временная переменная которая создается на время выполнения скрипта и в конкретной сессии
global глобальная переменная значение в которой хранится до первой перезагрузки и доступна она из любого скрипта
Re: Присвоение значения переменной в скрипте
Добавлено: 18 авг 2014, 12:33
mvp
Вот в том то и дело, что я тоже так думал.
Если делаю:
:local currentIP
if $MainIfInetOk do={
:local currentIP $RsrvIfAddress
/log info "*** $currentIP" #здесь показывает
}
/log info "*** $currentIP" #а здесь пусто
Или я не правильно присваиваю или лыжи не едут...
Re: Присвоение значения переменной в скрипте
Добавлено: 18 авг 2014, 12:47
vqd
Ну все правильно
Давайте смотреть
:local currentIP - Вот вы инициализировали вашу переменную в рамках сессии
if $MainIfInetOk do={
:local currentIP $RsrvIfAddress - а вот тут вы ее же инициализируете но в рамках do={} Естественно после выполнения условия она перестает существовать
/log info "*** $currentIP" #здесь показывает
}
/log info "*** $currentIP" #а здесь пусто - а тут ее уже не существует по сути
Если вам в условии надо поместить в переменную значение то
:set currentIP $RsrvIfAddress
Re: Присвоение значения переменной в скрипте
Добавлено: 18 авг 2014, 12:54
mvp
ясно, спасибо, так всё работает.
думаю же что что-то не то делаю...