期望脚本多个问答

期望脚本多个问答

我有以下期望脚本:

#!/usr/bin/expect

set timeout 20

set cmd "/path/vpntool  --server 1.2.3.4:443 --vpnuser user"
set password [lindex $argv 0]

eval spawn $cmd
expect "VPN:"
send "$password\r";
interact

expect ".*\(Y\/N\)"
send "Y\r";

interact

脚本在问题“您想连接到此服务器吗?(是/否)”处停止,等待答案。

有人知道可能是什么问题吗?

答案1

Expect 就是完全按照您的指示去做。

您的interact命令没有退出条件,因此此时脚本将控制权交给用户并且永远不会收回。

如果您需要在 Expect 脚本中间进行交互式访问,请参阅Stack Overflow.SE 中的这个问题。有多个可能适用的答案,具体取决于您希望脚本的行为方式。

如果脚本应该是完全自动化的,启动脚本后无需用户交互,那么为什么会有该interact命令?

相关内容