Переменные в скрипте

Обсуждение ПО и его настройки
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Голову сломал уже. Ничего не понимаю, как так то? :ps_ih:
1.JPG


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

По куску кода сложно понять, где косяк. Подозреваю, что ранее та же переменная уже получала другое значение.
Так на вскидку предположу. что переменной flagMail нужно изначально присвоить значение false или true, мне по кусочку не понять... Вот кусочек из кода с похожими функциями:

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

:local MainIfInetOk false;

:set MainIfInetOk (($ResultGoogle + $ResultIphome + $ResultMail) >= (2 * $PingCount))

:put "MainIfInetOk=$MainIfInetOk"


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Нет, она ранее ни где не получает значение. Я же специально открыл список глобальных переменных где четко видно что в flagMail записана "1"

Просто при одинаковых условиях в консоли одно, а шедулере другое


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Четвертая строка сверху условие if.........do={........$flagMail=0 ... Это к чему относится?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Да какая разница то. В переменной 1 записанна и она там не меняется. Если я этот скрипт выполню в консоле все гуд, если этот же спирт шедулером то вот такая бага


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Вот смотри, вот простейший скрипт на основе твоего:
Изображение
Он даёт в лог true. Значит в полном варианте или где-то ошибка в синтаксисе, что по скринам искать ну очень неприятно, либо где-то конфликт значений. Хотя у меня создавалось впечатление при написании скриптов, что перед запуском скрипт проверяется на ошибки синтаксиса, и если они есть, просто не запускается.
Если совсем дело станет, пуляй скрипт в личку, сам посмотрю, если не соображу, сына подпрягу, он програмист, ему в разы легче (правда его еще отловить надо :-) , но попробуем)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

так понятнее?

Снимок.JPG


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Дык переменная $aa у тебя в script1 не объявлена. Если тело скрипта будет

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

:global aa;
/log info [:put [($aa = 1)]];

получишь true


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ты бы переменную global вынес вперед за фигурные скобки. Насколько я помню, все, что в фигурных скобках, выполняется как отдельный скрипт...
Если вынесешь, то получиться, что ты ее объявил для всего скрипта, ну и как глобальную переменную, конечно :-):


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Мне в этом скрипте глобал не нужен. Глобал то он для того что бы значение переменной в можно было сохранить после завершения сессии. В общем через файлик сделаю.


Есть интересная задача и бюджет? http://mikrotik.site
Ответить