Ожидайте несоответствия шаблону шара

Я написал скрипт для автоматизации процесса входа в систему, ниже приведена часть кода, с которой у меня возникли проблемы.

spawn globalprotect connect --portal vpnconnect.myserver.com
expect { "1234myuser*:" } {
    send -- "\r"
}

Подсказка при запуске вывода терминала globalprotect connect --portal vpnconnect.myserver.com выглядит так:

Retrieving configuration...                                            
vpnconnect.manchester.ac.uk - Enter login credentials
username(1234myuser):

На этом этапе мне нужно ввести новую строку (отсюда send -- "\r"), однако шаблон глобуса "1234myuser*:" не соответствует этой последовательности. ниже результат запуска expect -d ./myscript.sh

expect version 5.45.4
argv[0] = expect  argv[1] = -d  argv[2] = ./myscript.sh 
set argc 0
set argv0 "./myscript.sh"
set argv ""
executing commands from command file .manvpn.sh
spawn globalprotect connect --portal vpnconnect.myserver.com
parent: waiting for sync byte
parent: telling child to go ahead
parent: now unsynchronized from child
spawn: returns {141688}

expect: does "" (spawn_id exp4) match glob pattern "1234myuser*:" "? no
Retrieving configuration...                                            

expect: does "\r                                                                       \rRetrieving configuration...\r\n" (spawn_id exp4) match glob pattern "1234myuser*:" "? no
vpnconnect.myserver.com - Enter login credentials
username(1234myuser):
expect: does "\r                                                                       \rRetrieving configuration...\r\nvpnconnect.myserver.com - Enter login credentials\r\nusername(1234myuser):" (spawn_id exp4) match glob pattern "1234myuser*:" "? no
expect: timed out

NB Мое имя пользователя явно не 1234myuser, а точно так же представляет собой последовательность буквенно-цифровых символов.

NB Я также пробовал подобные glob шаблоны, такие как *(1234myuser):", "*1234myuser*" безрезультатно.

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
14
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Expect использует Tcl, а в Tcl { "1234myuser*:" } совпадает с " \"1234myuser*:\" ".

Вы должны просто написать:

expect "1234myuser*:" {
    send -- "\r"
}

Другие вопросы по теме