目前我们已经使用expect编程编写了一个登录方法。它需要密码,如果有超时,则会出错。我们在tcl中编写了以下代码:
git fetch
现在我们正在观察即使登录成功,代码也在等待超时期限,因此耗费了一些时间。
所以有人建议如何在登录发生后立即返回成功,而不是等待超时到期?
答案 0 :(得分:1)
使用exp_continue
,我们可以轻松处理此问题。
set prompt "#|>|\\\$"; # Some commonly used prompts
# We escaped dollar symbol with backslashes, to treat it as literal dollar
expect {
-i $var
timeout {puts "Timeout happened"; return 0}
"(yes/no)" {send -i $var "yes\r";exp_continue}
-re ".*pass" {send -i $var "$pwd\r";exp_continue}
"Permission denied" {puts "Permission denied";return 0;}
-re $prompt {puts "Login successful!!!";return 1}
}