Страница 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
ясно, спасибо, так всё работает.

думаю же что что-то не то делаю...