Вот как вы обрабатываете вещи, которые ожидаются условно:
spawn $env(sec)/add.mims.user $username "$firstname $lastname"
set addID $spawn_id
expect "e291505's Password:*"
send -- "$mypassword\n"
expect "$username's New password:*"
send -- "$userpassword\n"
expect "Enter the new password again:*"
send -- "$userpassword\n"
expect {
"Password:" { send -- "$mypassword\n"; exp_continue }
eof
}
Последняя команда ожидания найдет запрос пароля или завершение процесса, в зависимости от того, что произойдет раньше. Если появляется запрос на ввод пароля, команда exp_continue
«зацикливается» в этой ожидаемой команде, так что вы продолжаете ждать, чтобы увидеть eof.
Обратите внимание, что я настроил команды send
: теперь вы защищены от любых паролей, начинающихся с дефиса.