我需要能够在第一个密码失败后返回一个不同的密码,这将是第二次提示要求相同的期望值"密码:"
(expect -c "
#exp_internal 1
set passwords {PASS1 PASS2}
set index 0
set timeout 20
# Start the session with the input variable and the rest of the hostname
spawn telnet $host
set timeout 3
expect {
-ex \"Password:\" {
send \"[lindex $passwords $index]\r\"
incr index
exp_continue;
}
}
我无法让它发挥作用。看起来lindex
发送内容中没有任何内容:
-ex "Password:" {
send "[lindex ]\r"
答案 0 :(得分:0)
问题是你使用双引号对期望脚本进行分组 - bash将$variables
解释为 bash变量。你需要:
\$expect_variables
,因此bash不会先取代它们。