изменить значение status

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Закрыто
-13-
Сообщения: 124
Зарегистрирован: 18 мар 2021, 12:45

Добрый час.
Никак не могу сообразить...
как изменить "status"

:local listVpn
:foreach Vpn in=[interface l2tp-client find] do={
:set listVpn ($listVpn."".[interface l2tp-client get $Vpn comment].": ".([/interface l2tp-client monitor $Vpn once as-value]->"status")."%0A")
:if ([$status] ~"terminating") do={
:set status "disabled"
}
}


-13-
Сообщения: 124
Зарегистрирован: 18 мар 2021, 12:45

Сам спросил, сам ответил))

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

:local commentVpn
:local cuVpnStatus
:local listVpn
:foreach Vpn in=[interface l2tp-client find] do={
  :set commentVpn [interface l2tp-client get $Vpn comment]
  :set cuVpnStatus ([/interface l2tp-client monitor $Vpn once as-value]->"status")
    :if ([$cuVpnStatus] ~"terminating") do={
    :set cuVpnStatus "disabled"
    }
  :set listVpn ($listVpn."".$commentVpn.": ".$cuVpnStatus."%0A")
}


-13-
Сообщения: 124
Зарегистрирован: 18 мар 2021, 12:45

кто подскажет как в каждый элемент добавить символ?

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

l2tp-out1 - disabled
l2tp-out2 - disabled
l2tp-out3 - disabled
l2tp-out4 - disabled
нужно в начале каждого добавить "/"

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

/l2tp-out1 - disabled
/l2tp-out2 - disabled
/l2tp-out3 - disabled
/l2tp-out4 - disabled
в изначальном скрипте добавлять не вариант, нужны оба списка


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

Проверяйте

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

{
local r "l2tp-out1 - disabled"; 
:local y "/"; 
:local w ($y . $r); 
:put $w
}


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

наверно неправильно вопрос задал

есть у меня скрипт "Script1"

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

foreach VPN in=[interface l2tp-client find] do={
  set $nameVPN ("".[interface l2tp-client get $VPN name])
  set $cuStatusVPN ([interface l2tp-client monitor $VPN once as-value]->"status")
    if ([$cuStatusVPN] ~"terminating") do={
    set $cuStatusVPN "disabled"
    }
  set $StatusVPN ($StatusVPN . "$nameVPN - $cuStatusVPN%0A")
}

return $StatusVPN
который используется другими скриптами

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

local StatusVPN [[parse [system script get "Script1" source]]]
text=$StatusVPN
на выходе получаем список, список динамический (устройств много)

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

l2tp-out1 - disabled
l2tp-out2 - disabled
l2tp-out3 - disabled
l2tp-out4 - disabled
возможно ли что сделать, чтобы на выходе в одном из скриптов получить

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

/l2tp-out1 - disabled
/l2tp-out2 - disabled
/l2tp-out3 - disabled
/l2tp-out4 - disabled


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

У вас массив, что ли? Ну тот же принцип. Что-то типа такого прокатит?

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

{
:local r {1,2,3,4}; 
:put $r; 
:for i from=0 to=0 step=1 do={set r ("/" . $r)}; 
:put $r
}
Или так

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

{
:local r {"tr-1","tr-2","tr-3","tr-4"}; 
:put $r; 
:set ($r) ("/" . "$r") ; 
:put $r
}


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

не работает(

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

{
local r {[[parse [system/script/get Script1 source]]]};
for i from=0 to=0 step=1 do={set r ("/" . $r)};
put $r
}
добавляет только в первую строчку


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

Я у себя не могу воспроизвести ваш скрипт. У меня просто нет подобных вариантов. Высасывать ситуацию из пальца мне не хочется. Вы поймите, или вы приведёте выхлоп скрипта к тому типу, который я обрабатывал, или хоть как-то работайте сами. Проведите исследование переменной, какой там тип получается. Текст, массив, какие разделители, или у вас там просто простыня, результаты которой сами по себе понятны только глазом... Скрипт должен цепляться за какой-то признак, по которому он распознает элементы, перед которыми надо добавить символ. Если нет никаких разделителей, я считаю эту возню непродуктивной. Проще исправить выхлоп на нормально обрабатываемый, чем мучится с этим.


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

создам отдельную тему с ботом для телеграм, там выложу все карты :-):


-13-
Сообщения: 124
Зарегистрирован: 18 мар 2021, 12:45

Открыл все карты в отдельной теме viewtopic.php?f=14&t=13619


Закрыто