Используйте expect's stty
управляйте как это:
# grab the password
stty -echo
send_user -- "Password for $user@$host: "
expect_user -re "(.*)\n"
send_user "\n"
stty echo
set pass $expect_out(1,string)
#... later
send -- "$pass\r"
Обратите внимание, что важно звонить stty -echo
перед вызовом send_user
- Я не уверен точно почему: Я думаю, что это - проблема синхронизации.
ожидайте, что программисты должны все прочитать книгу: Исследование Ожидает Don Libes