Ожидайте сценарий, который вводит имя пользователя и пароль

Я пытаюсь запустить сценарий ожидания, каждый раз, когда в приглашении говорится пароль пользователя @blah, он вводит пароль. У меня есть следующий сценарий ожидания, но, похоже, он работает.

Может кто-нибудь сказать мне, что я делаю не так? Это приглашение появляется несколько раз по команде, которую я запускаю, поэтому мне нужно каждый раз вводить пароль, оно видит пароль пользователя @blah.

#!/usr/bin/expect
global env
set timeout 10
spawn command that requires password
expect "^user"
send "password\r"

Пожалуйста и спасибо.

1 ответ

Решение

Просто сравнивая последний бит с другим примером, который я видел:

spawn ssh root@$ipaddr $scriptname $arg1
match_max 100000

expect "*?assword:*"
send -- "$password\r"

# send blank line (\r) to make sure we get back to gui
send -- "\r"

expect eof

Их синтаксис отправки кажется немного другим. И они также позволяют довольно либеральное регулярное выражение. У последних битов тоже могут быть ответы.

Другие вопросы по тегам