Ubuntu 期望脚本可以';t spawn dhclient命令

Ubuntu 期望脚本可以';t spawn dhclient命令,ubuntu,tcl,expect,Ubuntu,Tcl,Expect,我正在编写一个tcl expect脚本,用于连接Ubuntu客户端上的vpn服务器(softether)。客户端连接到vpn服务器,然后我想运行“dhclient vpn_tun0”从vpn服务器获取IP地址,其中vpn_tun0是我的适配器的名称。在terminal中运行该命令可以很好地工作,但我不知道如何使它在脚本中工作 我尝试了以下方法,但没有成功。我也在谷歌上广泛搜索了这个问题 spawn dhclient vpn_tun0 spawn "dhclient vpn_tun0" se

我正在编写一个tcl expect脚本,用于连接Ubuntu客户端上的vpn服务器(softether)。客户端连接到vpn服务器,然后我想运行“dhclient vpn_tun0”从vpn服务器获取IP地址,其中vpn_tun0是我的适配器的名称。在terminal中运行该命令可以很好地工作,但我不知道如何使它在脚本中工作

我尝试了以下方法,但没有成功。我也在谷歌上广泛搜索了这个问题

spawn dhclient vpn_tun0 

spawn "dhclient vpn_tun0"

send "dhclient vpn_tun0"
第一个命令不会产生错误,但不会产生IP

第二个结果是

spawn dhclient vpn_tun0
couldn't execute "dhclient vpn_tun0": no such file or directory
    while executing
"spawn "dhclient vpn_tun0""
第三个只是将文本发送到终端输出

以下是vpn连接后的测试脚本:

#!/usr/bin/expect -f

if { [exec id -u] ne 0 } {
   puts "sorry. you are not root"
   exit 1
}

spawn dhclient vpn_tun0

close

试试这个。希望这能解决您的需求

产卵狂欢

设置dh_客户端$spawn_id

发送“dhclient vpn\u tun0\r”


预期为“”

您是否收到任何错误消息?我编辑为“问题”以回答您的问题当您从shell提示符运行dhclient时,是否需要与它交互?如果没有,那么您不需要从expect生成它,
exec dhclient vpn\u tun0
就足够了。马上!请写下来作为回答。