2013-04-10 3 views
0

У меня есть программа, которая запрашивает ввод. Например:Как автоматизировать запуск команды, запрашивающей ввод пользователя?

$ program arg1 arg2 
Enter the value of arg3: foo 
Enter the value of arg4: spam 
$ 

Как я могу автоматизировать работу? Я подозреваю, что expect обеспечивают функциональные возможности для этого, но следующий не работает для меня:

#!/usr/bin/expect 
set timeout 20 
spawn "./program arg1 arg2" 
expect "Enter the value of arg3:" { send "foo\r" } 
expect "Enter the value of arg4:" { send "spam\r" } 
interact 

Кто-нибудь есть идеи? Благодарю.

ответ

0

spawn "./program arg1 arg2" должно быть spawn ./program arg1 arg2.

1

Попробуйте сделать это самым простым способом (без ожидания): Это работает?

program arg1 arg2 <<END 
foo 
spam 
END 

(или printf "%s\n" foo spam | program arg1 arg2)

+0

право, я забыл здесь-документ Баш. Благодарю. – RNA

Смежные вопросы