2016-09-21 2 views
-1

Я новичок, когда дело доходит до Expect, и я подумал, что смогу намочить ноги, предварительно попробовав на моей локальной машине.Создание сценария ожидания для Linux «adduser» command

С этой целью я подумал, что попробую запустить Expect против команды «adduser».

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

Что я делаю неправильно?

#/usr/bin/expect -f 
spawn adduser testuser 

expect "Enter new UNIX password" 
send "testpassword\r" 

expect "Retype new UNIX password" 
send "testpassword\r" 

expect "  Full Name []: " 
send "\r" 

expect "  Room Number []: " 
send "\r" 

expect "  Work Phone []: " 
send "\r" 

expect "  Home Phone []: " 
send "\r" 

expect "  Other []: " 
send "\r" 

expect "Is the information correct? \[Y/n\] " 
send "\r" 
+0

добавить 'ожидать eof' на последнем. – Dinesh

+0

Запустите свой скрипт с 'expect -d scriptname' и внимательно прочитайте вывод отладки: все ваши шаблоны соответствуют? –

ответ

0

Похоже, все это не так: expect " Something []: "

Я хотел бы использовать expect -ex {Something []: }

  1. , который использует «точное» соответствие, так как вам не нужно питание Глоб или регулярных выражений шаблонов, и
  2. брекеты гарантируют, что скобки не интерпретируются как синтаксис подстановки команды Tcl.