2016-08-04 4 views
-1

У меня есть сценарий ожидания, который выполняет удаленный сценарий оболочки. Теперь время выполнения сценария оболочки основано на входах. Больше ввода, больше времени, меньше ввода меньше времени. Как я должен установить значение таймаута, потому что если установить тайм-аут как -1, то он выйдет только с eof, а в случае, если скрипт будет повешен, тогда у нас будет свисающий сеанс.Установите время ожидания для сценария ожидания, если время выполнения введено на основе

+0

Как эти входы читаются от пользователя? – Dinesh

+0

Входные файлы динамически создаются и помещаются по пути, откуда скрипт читает их. – Rinky

+0

Скажем, вы читаете входы по строкам и для каждой строки, старайтесь увеличить значение таймаута. Таким образом, больше ввода, больше времени ожидания. – Dinesh

ответ

0

После анализа шаблона вывода текущего скрипта я обнаружил, что «OK» подходит для всех строк, считанных из входного файла. Поэтому я использовал его как индикатор прогресса для сброса счетчика тайм-аута. Ниже приведена часть кода, который я написал для решения моей проблемы:

send -- "bash scriptname.sh \r" 
expect { 
     -re "OK" { 
        exp_continue 
        } 
     -re "Enter XYZ value:" { 
            send "0000\r" 
            } 
     timeout { 
       exit 
       } 
     eof  { 
       exit 
       } 
     } 
Смежные вопросы