我有两个文件。一个叫做bgp_ip.log,另一个是名为bgp.sh
的expect脚本bgp_ip.log只包含一个IP地址,该地址由另一个名为getip.sh的脚本输入到该文件中,该脚本工作正常。
现在我试图找出如何让bgp.sh在bgp_ip.log中提取IP地址并将其放入变量容器中。在此脚本上下文中,变量容器称为$ BGP_IP,如下面的脚本所示:
拥有此变量以便以下脚本能够根据从bgp_ip.log获取的IP地址执行Router BGP命令的原因
#!/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
}
感谢任何帮助。谢谢。
答案 0 :(得分:1)
您需要读取文件并从中获取数据
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之前添加此代码即可。