Помогите со скриптом.

Обсуждение ПО и его настройки
Ответить
Sergey.I
Сообщения: 2
Зарегистрирован: 10 ноя 2019, 19:39

Товарищи, всех приветствую.
Написал простенький скрипт мониторинга локальных адресов с записью результатов в глобальную переменную.
Данные о статусе записываются в глобальную переменную monESP8266.
Все как бы работает, но вот проблема в том, что этот скрипт я хочу размножить в десятки раз на разные адреса, и в каждом скрипте помимо IP и имени устройства приходится менять название глобальной переменной monESP8266 и далее по коду более чем в пяти местах менять $monESP8266/monESP8266.
Как привязать имя глобальной переменной к локальной переменно? вариант типа (:global $NAMEdev;) не проходит, хотя может с синтаксисом что не то? Задача стоит изменять только переменные в начале скрипта: название и IP(IPdev и NAMEdev), а код скрипта чтобы был одинаковый везде.

Пример скрипта:

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

:local IPdev "192.168.23.20";
:local NAMEdev "monESP8266";
:global monESP8266;
:local countplus;

:local checklan [/ping $IPdev count=2]
:if ($checklan = 0) do={
:if ($monESP8266 = "OK") do={set monESP8266 0;}
:local countplus ($monESP8266+1);
/log error "PING FAILED - $IPdev"
:set $monESP8266 $countplus
} else={
/log warning "PING OK - $IPdev"
:set $monESP8266 OK
}


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

viewtopic.php?f=14&t=6921
Но не думаю, что вам это сильно поможет. Имя переменной вы зададите, а вот как вы его упоминать будете? Проще скрипт переписать, поменяв логику на более гибкую. Или самому стать немного гибче и прекратить опираться на имя переменной. Это просто имя, а в переменной важно значение.
Про адрес вообще не понял. Его что, сложно получить командой get?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить