Страница 2 из 3

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 10:00
vqd
сделайте отладку

Посмотре чего в переменых записано

:put $variable
:put [/file get Wi-Fi_Pass.txt contents]

И запускайте. Смотрите где чего теряется

Так же проверте чего у вас в строке fetch формируется. А то может у вас в файле симфор переноса строки есть который тупо впихивается в фетч и оноестествено вылетает, а в переменую руками вы без переносастроки данные вставляете и потому у вас все ок

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 10:39
Ejik76
vqd писал(а): 01 авг 2018, 10:00 сделайте отладку

Посмотре чего в переменых записано

:put $variable
:put [/file get Wi-Fi_Pass.txt contents]

И запускайте. Смотрите где чего теряется

Так же проверте чего у вас в строке fetch формируется. А то может у вас в файле симфор переноса строки есть который тупо впихивается в фетч и оноестествено вылетает, а в переменую руками вы без переносастроки данные вставляете и потому у вас все ок
верно в файле есть перенос строки. в переменную берется без переноса, соответственно в фетч берется из переменной без переноса. или я что то не понимаю?
убрать из файла перенос строки убрать никак. можно ли как то брать значение без переноса?

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 11:14
vqd
с чего вы взяли что без преноса то берется? Там обсалютно все символы включая служебные. На деле вы незнаете как у вас строка фетча формируется. Вот выясните это и все.

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 11:38
Ejik76
vqd писал(а): 01 авг 2018, 11:14 с чего вы взяли что без преноса то берется? Там обсалютно все символы включая служебные. На деле вы незнаете как у вас строка фетча формируется. Вот выясните это и все.
Действительно в переменную попадает с переносом и в фетч тоже. отсюда проблема.
можно ли как то брать из файла только печатные символы или указанный диапазон символов из первой строки?

Взял я с потолка, не достаточно компетентен. пытаюсь учитсо. так что Извиняйте если для Вас мои вопросы являются глупыми :)

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 11:42
vqd
ну например так
{
:global str "123\n\r"
:put [:pick $str 0 [:find in=$str key="\n\r"]]
}

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 13:05
Ejik76
vqd писал(а): 01 авг 2018, 11:42 ну например так
{
:global str "123\n\r"
:put [:pick $str 0 [:find in=$str key="\n\r"]]
}
выполнил это:
{
{... :put [/file get Wi-Fi_Pass.txt contents]
{... :global RandomOrg [[:pick [/file get Wi-Fi_Pass.txt contents] 0 8] [:find in=$RandomOrg key="\n\r"]]
{... :put $RandomOrg
{... }
GWxC8Ayx

GWxC8Ayx
Все получилось, а можно как то без указания диапазона брать всё содержимое переменной за исключением переходов и пробелов?

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 13:10
vqd
ну собственно я вам дал один из вариантов. Дальше уж думайте

Re: как вставить переменную. скриптик

Добавлено: 01 авг 2018, 13:30
Ejik76
vqd писал(а): 01 авг 2018, 13:10 ну собственно я вам дал один из вариантов. Дальше уж думайте
Благодарю, за помощь.

Re: как вставить переменную. скриптик

Добавлено: 14 сен 2020, 15:41
Dmitry.Ilinsky
Мое почтение,
Сильно обрадовался, увидев решение проблемы выше, но как выяснилось - не так всё и просто (для меня точно).
Есть вот такая команда:
:local remarc ([/system ssh-exec 192.168.1.12 ":put ([/system resource get architecture-name])" as-value]->"output");
возращает она архитектуру удаленного Микротика. И всё бы отлично, но переменная выглядит как:
"mipsbe

"

то есть с лишней строкой. Всё попытки типа :set remarc [:pick $remarc 0 [:find in=$remarc key="\n\r"]] приводят к тому, что :find возвращает пустое значение. Попытка перевести remarc в string/array/num не дает иного результата.

Буду очень признателен за подсказку.
Спасибо

Re: как вставить переменную. скриптик

Добавлено: 14 сен 2020, 18:09
Sertik
Вы сначала посмотрите, что реально возвращается и какой длины:

:put $remarc
:put [:len $remarc]
:put [:typeof $remarc]

Я проверить это не могу, не работаю с ssh.

Вообще запись у Вас кривая какая-то по синтаксису. Если не прокаит Ваш вариант, то есть вариант получить те же сведения через OID с удаленного Тика по SNMP.