Страница 1 из 1

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

Добавлено: 22 фев 2022, 14:16
-13-
Добрый час.
Никак не могу сообразить...
как изменить "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"
}
}

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

Добавлено: 25 фев 2022, 16:49
-13-
Сам спросил, сам ответил))

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

: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")
}

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

Добавлено: 23 мар 2022, 11:41
-13-
кто подскажет как в каждый элемент добавить символ?

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

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

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

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

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

Добавлено: 23 мар 2022, 18:55
podarok66
Проверяйте

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

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

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

Добавлено: 24 мар 2022, 17:40
-13-
наверно неправильно вопрос задал

есть у меня скрипт "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

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

Добавлено: 24 мар 2022, 20:12
podarok66
У вас массив, что ли? Ну тот же принцип. Что-то типа такого прокатит?

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

{
: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
}

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

Добавлено: 25 мар 2022, 14:52
-13-
не работает(

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

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

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

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

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

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

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

Добавлено: 26 мар 2022, 18:41
-13-
Открыл все карты в отдельной теме viewtopic.php?f=14&t=13619