这是我的脚本除外
#!/usr/bin/expect
spawn openvpn --config peter.ovpn
expect -exact "Enter Private Key Password: "
send -- "mypassword\r"
我运行它,然后看到OpenVPN询问我的客户端密码。但是脚本退出了,显然没有发送密码。当我尝试使用不正确的密码时,它是相同的(没有错误的密码信息)。如果我从期望脚本的末尾删除send -- "mypassword\r"
行,结果也完全相同。
这是我的第一个期望脚本,所以我的语法可能不正确。还是OpenVPN因为使用Expect脚本进行连接而让我踢了?
答案 0 :(得分:1)
您的语法很好。问题是发送密码后脚本没有更多命令可运行,因此expect脚本退出,这会杀死openvpn。
发送密码后需要做什么?
如果只需要保持openvpn运行,请执行以下操作:
#!/usr/bin/expect
spawn openvpn --config peter.ovpn
expect -exact "Enter Private Key Password: "
send -- "mypassword\r"
set timeout -1
expect eof
-1
表示“无限”,expect eof
表示您在等待期望的脚本可以退出之前正在等待生成的进程退出。