Отправлять команды в ожидаемом скрипте только после появления на экране определенного текста - PullRequest
0 голосов
/ 07 февраля 2020

Я пишу ожидаемый сценарий, который будет взаимодействовать с программой, предназначенной для загрузки файлов журнала с веб-сайта. Это выглядит так:

Expect 
spawn program link
send "\n"
send "\n

Начнется загрузка файла.

Но файл длинный и время загрузки меняется (в зависимости от скорости inte rnet), поэтому я не могу указать тайм-аут или спать напрямую. Но после загрузки файла появляется текст [OK]. Выходные данные после загрузки файла: [OK] Загрузка завершена


Поэтому я хочу сделать сценарий с ожиданием, чтобы после загрузки файла и появления на экране текста [OK], он отправил еще одну команду выйти или выйти и начать другую загрузку.

Я пытался использовать:

Spawn program 
Expect "OK" or expect "\[OK]" 
Send command

Но это не сработало.

Как я могу это сделать?

1 Ответ

0 голосов
/ 10 февраля 2020

! / Bin / wait

программа вызова spr url_to_log_file send "\ n" # Это отправит enter send "\ n" # Это отправит enter после того, как начнутся две загрузки файла отправки. В конце загрузки будет показано имя файла

[OK] Загрузка завершена

send q # Это выйдет из программы

Так что вопрос в том, как я могу использовать дождитесь завершения загрузки и отправьте q для выхода. Я использовал функцию «[OK]» send q, но она не завершается даже после завершения загрузки

...