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

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

14 сен 2020, 21:19

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

[podarok66@RB750Gr3] > {:local remarc ([/system ssh-exec 192.168.100.10 ":put ([/system resource get architecture-name])" as-v
alue]->"output"); :put $remarc}
mipsbe

[podarok66@RB750Gr3] > 
Что я делаю не так?


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

14 сен 2020, 21:41

[:find in=$remarc key="\n\r"]
Пробуй так
[:find $remarc "\r\n"]


Sertik
Сообщения: 972
Зарегистрирован: 15 сен 2017, 09:03

15 сен 2020, 08:47

Все правильно, надо отсечь перевод строки в конце архитектуры - отрубите фундамент. :-)


Чего не знаем то нагуглим
Dmitry.Ilinsky
Сообщения: 3
Зарегистрирован: 14 сен 2020, 13:47

15 сен 2020, 10:40

pepelxl писал(а):
14 сен 2020, 21:41
[:find in=$remarc key="\n\r"]
Пробуй так
[:find $remarc "\r\n"]
О да! Заработало!
Спасибо огромное, чертовски простое и эффективное решение!


pepelxl
Сообщения: 82
Зарегистрирован: 23 июл 2013, 18:47

15 сен 2020, 15:43

Спасибо огромное, чертовски простое и эффективное решение!
На счёт эффективности я бы задумался. :len-2 должно сработать быстрее.


Dmitry.Ilinsky
Сообщения: 3
Зарегистрирован: 14 сен 2020, 13:47

16 сен 2020, 12:09

В продолжение темы про переменную Наверное неверно это здесь спрашивать, но тем не менее.
Вот тело скрипта

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

:local newOsVer [/system package update get latest-version];
:foreach devcap in=[caps-man remote-cap find] do= {
   :local devcapmac [/caps-man remote-cap get $devcap base-mac];
    :local devcapip [/ip dhcp-server lease get [find mac-address=$devcapmac] address] ;
    :local remarc ([/system ssh-exec  $devcapip ":put ([/system resource get architecture-name])" as-value]->"output");
           :set remarc [:pick $remarc 0  [:find in=$remarc key="\r\n"]];
    :if ($remarc="mips") do={
            :set $remarc  "mipsbe";
                                                };										
	:local pathcapdownload ("https://download.mikrotik.com/routeros/" . $newOsVer . "/" . "routeros-" . $remarc . "-" . $newOsVer . ".npk");
    /tool fetch url="$pathcapdownload" mode=https dst-path="/CAPs_upd";
                                                   };
}
возникла следующая проблема - поскольку архитектура CAP может повторяться, то необходимо перед определение pathcapdownload проверить, была ли такая архитектура, и если да, то пропустить и определение переменной и скачивание. Собствеено - не могу придумать (второй день туплю) как организовать проверку дубликата. Спасибо если подскажете. Да в любом случае спасибо.


Ответить