Создание глобальных функций?

Обсуждение ПО и его настройки
Ответить
pepelxl
Сообщения: 161
Зарегистрирован: 23 июл 2013, 18:47

Наткнулся на препятствие в своей писанине скрипта, не могу понять как перепрыгнуть.
Видимо, скрипт разросся до максимальных допустимых размеров(много комментариев которые не удастся выкинуть). В скрипте используется несколько объёмных функций, соответственно встаёт вопрос - как можно их выкинуть в отдельные скрипты и вызывать по требованию, что-бы они возвращали то что должны обратно в вызывающий скрипт.


vbsev
Сообщения: 84
Зарегистрирован: 19 авг 2018, 09:35

Не скриптописатель, но в википедии по адресу https://wiki.mikrotik.com/wiki/Manual:S ... repository написано:

Script repository

Sub-menu level: /system script

Contains all user created scripts. Scripts can be executed in several different ways:

* on event - scripts are executed automatically on some facility events ( scheduler, netwatch, VRRP)
* by another script - running script within script is allowed
* manually - from console executing run command or in winbox

Т.е. можно вызывать скрипт из другого скрипта. Попробуйте функции в другой файлик положить и дергать скрипты

А вот тут: viewtopic.php?t=5674
уже показывали как вызывать скрипты из другого скрипта.


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

Да вот viewtopic.php?f=14&t=8006 читайте. Там вроде как всё почти на пальцах ...


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

спасибо, перечитал в очередной раз тот пост, наткнулся на две ошибки у себя, невнимательность.
Первая - при объявлении в основном скрипте писал :global $var; вместо :global var;
вторая - в вызывающем скрипте нужны права write, хотя оба скрипта не меняют конфиг оборудования, а только производят подсчёты и отправляют в лог.


Ответить