LINUX.ORG.RU

Как передать ввод в интерактивную консольную программу?


0

1

Есть программа Phoronix Test Suite, она позволяет сравнительно удобно запускать различные тесты аппаратного обеспечения.

Но она совершенно не приспособлена для запуска её из скриптов. Если тест предполагает варианты выбора каких-либо опций, то выбор происходит с помощью интерактивного ввода от пользователя. Например, для теста iozone задаются три вопроса.

Подскажите, пожалуйста есть ли какой-либо способ, позволяющий скрипту передать ответы на эти вопросы в программу?

Я пробовал передавать ответ (для начала один, на первый вопрос) через stdin, но вышло совсем не то — программа до Ctrl+C задавала первый вопрос так, как будто был введён только символ Enter.

Сама команда:
phoronix-test-suite run iozone

stdin я пробовал передавать так:
echo «1» | phoronix-test-suite run iozone

Ответ на: комментарий от GotF

> man expect?

Офигенно! Спасибо большое!

#!/usr/bin/expect

spawn phoronix-test-suite run iozone
expect «Enter Your Choice:» {send «1\r»}
expect «Enter Your Choice:» {send «1\r»}
expect «Enter Your Choice:» {send «1\r»}
expect «Would you like to save these test results (Y/n):» {send «n\r»}
expect eof

ijo_suna
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.