Tcl 使用Expect,如何从文件中提取特定值并输入Expect脚本的变量
我有两个文件。一个名为bgp_ip.log,另一个名为bgp.sh的expect脚本 bgp_ip.log只包含一个ip地址,该地址由另一个名为getip.sh的脚本输入到文件中,该脚本工作正常 现在,我正试图找出如何让bgp.sh提取bgp_IP.log中的IP地址,并将其放入一个变量容器中。在此脚本上下文中,变量容器称为$BGP_IP,如下脚本所示: 使用此变量以便下面的脚本能够基于从BGP_IP.log获得的IP地址执行路由器BGP命令的原因Tcl 使用Expect,如何从文件中提取特定值并输入Expect脚本的变量,tcl,expect,Tcl,Expect,我有两个文件。一个名为bgp_ip.log,另一个名为bgp.sh的expect脚本 bgp_ip.log只包含一个ip地址,该地址由另一个名为getip.sh的脚本输入到文件中,该脚本工作正常 现在,我正试图找出如何让bgp.sh提取bgp_IP.log中的IP地址,并将其放入一个变量容器中。在此脚本上下文中,变量容器称为$BGP_IP,如下脚本所示: 使用此变量以便下面的脚本能够基于从BGP_IP.log获得的IP地址执行路由器BGP命令的原因 #!/usr/bin/expect set
#!/usr/bin/expect
set username "testaccount"
set password "testaccount"
set hostname "R-KANSAS-01"
set BGP_IP "?????" <<<< I'm not sure how can I extract the IP from bgp_ip.log and place into this variable
spawn telnet "$hostname"
expect "login: " {
send "$username\n"
expect "Password: "
send "$password\n"
expect "> "
send "show bgp summary instance $BGP_IP\n"
log_file "R-KANSAN-01_temp.log"
log_user 1
expect "#"
send "exit\n"; exit 0
interact
}
#/usr/bin/expect
设置用户名“testaccount”
设置密码“testaccount”
设置主机名“R-KANSAS-01”
设置BGP_IP“???”您需要读取文件并从中获取数据
set file_name "bgp_ip.log"
set fp [open $file_name "r"]
set BGP_IP [read $fp]
close $fp
变量BGP_IP将保存IP地址。我假设该文件只包含IP地址,而不包含其他内容
如果没有,则需要regexp
来获取它
只需在代码中生成telnet之前添加此代码