Tcl 需要expect脚本的帮助
我正在尝试实现一个特定的预期脚本,我有一个txt文件 它包含如下数据:Tcl 需要expect脚本的帮助,tcl,expect,Tcl,Expect,我正在尝试实现一个特定的预期脚本,我有一个txt文件 它包含如下数据: 1 ip telnetname slot1 slot2 assoc1 assoc2 mep1 mep2 2 ip telnetname slot1 slot2 assoc1 assoc2 mep1 mep2 我想制作一个expect脚本,它为文件中的每一行生成一个telnet会话,其中包含从第1行设置的变量,如从第1行生成的spawn telnet,其中的每一个单词都作为变量集,稍后在命令中使用 这就是我到目前为止所尝试的
1 ip telnetname slot1 slot2 assoc1 assoc2 mep1 mep2
2 ip telnetname slot1 slot2 assoc1 assoc2 mep1 mep2
我想制作一个expect脚本,它为文件中的每一行生成一个telnet会话,其中包含从第1行设置的变量,如从第1行生成的spawn telnet,其中的每一个单词都作为变量集,稍后在命令中使用
这就是我到目前为止所尝试的
foreach ip $ips telnetname $telnetnames slot1 $slots1 slot2 $slots2 { commands here }
从您的描述中不太清楚您想要做什么,但让您的代码像这样工作可能是最容易的:
# Slurp the data into Tcl; it's not *that* long, is it?
set f [open "inputfile.txt"]
set data [read $f]
close $f
foreach line [split $data "\n"] {
# Tcl's [scan] is like C's sscanf(), but memory-safe!
if {[scan $line "%d %s %s %s %s" -> ip telnetname slot1 slot2] != 5} {
# Not what was expected; skip it!
continue
}
# Now do something with $ip, $telnetname, $slot1 and $slot2 ...
}
缺少的是你尝试过的结果。因此,你到底需要什么样的帮助。否则,这个问题看起来像是“给我完整的代码”类型的问题。你能编辑你自己的答案并试着详细说明你想要实现什么吗?我不确定我是否明白你想做什么。例如,您的意思是在运行命令时只使用第一行而不使用其他行吗?(下次可能只有第3行?)另外,
->
实际上是一个(奇怪的)变量名,我正在使用它,因为我并不真正关心行开头的数字。(假设这是一个实数。)