Tcl期望从tclsh到shell脚本的输出

时间:2015-01-26 21:13:04

标签: linux variables tcl expect cisco

我正在寻找解决问题的最后几天,所以最后我来到这里。

我必须编写一个应该从Linux / Debian系统打开的Tcl脚本。问题是,脚本应该登录到Cisco路由器然后进入特殊的tclsh模式,它应该获得表示txload的SNMP值。过了一会儿,我在tclsh模式下获得了值(它支持SNMP),但是我无法将它恢复到我的脚本中。它仍然只存在于路由器tclsh模式中。我的脚本应该根据tclsh中已有的值更改其他一些值,但不再需要tclsh。

所以我的问题是:如何从tclsh获取$ifnum值,但我仍然可以在该脚本中使用某些循环,因为我需要在{{1}处创建一些循环条件是什么?

正如你所看到的,剧本还没有完成,但正如我所说的那样,我被困在这里试图找出答案:

$ifnum

1 个答案:

答案 0 :(得分:0)

我打印出你在标记之间寻找的东西,然后在其RE匹配模式中使用expect来获取值。

send "puts \"if\\>\$ifnum<if\"\r"
expect -re {if>(.*?)<if}
# Save the value in a variable in the *local* script, not the remote one
set ifnum $expect_out(1,string)