Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Ввод скрипта с консоли... работает!

    Ввод скрипта с консоли... работает!

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Ввод скрипта с консоли... работает!, RouterOS
     
    dennis46
    Guest
    #1
    0
    31.05.2018 12:18:00
    Я наткнулся на интересное undocumented (?) решение для ввода значений из терминала в скрипт. Выглядит оно вот так.

    === пример скрипта ===  
    :local input do={:put $1; :return}  
    :local login [$input "Enter login"]
    :local password [$input "Enter password"]
    :put "Login is [$login] and password is [$password]"

    === вывод в терминале ===  
    [admin@MikroTik AP] /ppp secret> /system script run 1
    Enter login value: mike  
    Enter password value: jdajshdjadh  
    Login is [mike] and password is [jdajshdjadh]
    [admin@MikroTik AP] /ppp secret>

    Так что, если использовать :return без параметров, получается ввод из терминала. Про такое поведение ни слова не написано ни в https://wiki.mikrotik.com/wiki/Manual:Scripting, ни в https://wiki.mikrotik.com/wiki/Manual:Scripting-examples...
     
     
     
    dke
    Guest
    #2
    0
    04.06.2020 11:41:00
    Это не работает у меня на версии 6.47. Я не получаю запрос на ввод, а выводится вот что: Login is и password is. Есть ли работающий ввод пользователя в версии 6.47? Я также не смог разобраться с http://forum.mikrotik.com/t/scripting-asking-user-for-input/79678/1
     
     
     
    msatter
    Guest
    #3
    0
    04.06.2020 14:11:00
    Большое спасибо, именно такой скрипт я и искал. Запускайте его в терминале, начиная с «{» и заканчивая «}». Когда используете в скрипте и планировщике, как я писал ранее, я добавил «:terminal style escaped;», чтобы текст отображался другим цветом. Я пробовал играть с cuu и el, чтобы поле ввода появилось прямо после описания, но так и не получилось.

    :terminal  
    cuu — переместить курсор вверх  
    el — очистить строку  
    inkey — считать нажатую клавишу  
    style — задать стиль текста вывода  

    :local input do={:terminal style escaped; :put $1; :return;}  
    :local login [$input "Введите логин:"]
    :local password [$input "Введите пароль:"]
    :put "Логин — [$login], пароль — [$password]"

    Введите логин  
    значение: test  
    Введите пароль  
    значение: test1  
    Логин — [test], пароль — [test1] Чёрт, даже лучше, чем я ожидал! \...
    :put [:typeof $login];
    :put [:typeof $password];

    Введите логин  
    значение: 1234  
    Введите пароль  
    значение: false  
    num  
    bool
     
     
     
    tabraham
    Guest
    #4
    0
    24.08.2023 18:46:00
    Всем привет! В целом всё работает, но я не до конца понял, что ты имел в виду, когда сказал: «Запиши это так — с началом в виде "{" и концом "}" в терминале». Когда я использую это в скрипте и по расписанию, как ты говорил раньше, скрипт, в котором я принимаю ввод (если в глобальной среде ничего не задано), тоже запускается по расписанию через интервал… но он не работает. Он нормально выполняется только если запускать напрямую из терминала. Не мог бы ты помочь разобраться?
     
     
     
    Amm0
    Guest
    #5
    0
    24.08.2023 18:55:00
    В версии v7.12beta1 теперь действительно есть /terminal/ask. {
     :local myhelp "Теперь можно задавать вопросы!"
     :local myquestion "Что хочешь спросить?"
     :local myanswer [/terminal/ask preinput=$myhelp prompt=$myquestion]
     :put $myanswer
    }
     
     
     
    msatter
    Guest
    #6
    0
    24.08.2023 20:15:00
    Все переменные являются :local, и как только скрипт заканчивается, они уничтожаются. Чтобы сделать их :global, замените :local на :global. Фигурные скобки {} позволяют в терминале выполнять всё как один скрипт. Иначе каждая строка интерпретируется отдельно, и все переменные уничтожаются после нажатия Enter… если только не использовать :global.
     
     
     
    tabraham
    Guest
    #7
    0
    25.08.2023 20:08:00
    Спасибо за идеи, но, кажется, я не совсем ясно объяснил. У меня есть скрипт, который принимает ввод и устанавливает его как глобальную переменную перед выполнением остальных действий. Скрипт отлично работает, когда я запускаю его из терминала. Но я хочу, чтобы скрипт запускался ещё и через планировщик. Когда планировщик запускает скрипт, он не должен запрашивать ввод пользователя, а должен использовать значение по умолчанию. Кстати, я не хочу обновляться до бета-версии. Моя версия ROS — 7.11.
     
     
     
    rextended
    Guest
    #8
    0
    26.08.2023 06:30:00
    Создайте отдельную неактивную версию…
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры