我有一个使用 openconnect 连接到 VPN 的期望脚本。该脚本运行良好,只是我不知道在提供密码并且预期已达到 EOF 后如何保持 openconnect 处于活动状态。我认为我需要分叉该进程,但我需要它以某种方式保留密码。这是我的脚本
#!/usr/bin/expect -f
spawn ./openconnect
expect "sudo"
send "sudo_password\r"
expect "password:"
send "vpn_password\r"
expect /Connected\stun1\sas/ #expect connected tun1 as some ip
Run Code Online (Sandbox Code Playgroud)
和开放连接
#!/usr/bin/env bash
sudo -k
sudo -S openconnect --juniper --user username --csd-wrapper ~/juniper-vpn-py/tnc vpn_server
Run Code Online (Sandbox Code Playgroud)
输出按照预期作为某个 ip 到达已连接的 tun1,但随后预期关闭,进程也随之生成。
您必须等待生成的进程完成才能退出 Expect 脚本,否则生成的进程可能会被过早终止。尝试这样:
expect "Connected tun1 as"
expect -timeout -1 eof ; # change the timeout value as needed
Run Code Online (Sandbox Code Playgroud)
或者
expect "Connected tun1 as"
interact
Run Code Online (Sandbox Code Playgroud)