Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcl 需要expect脚本的帮助_Tcl_Expect - Fatal编程技术网

Tcl 需要expect脚本的帮助

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,其中的每一个单词都作为变量集,稍后在命令中使用 这就是我到目前为止所尝试的

我正在尝试实现一个特定的预期脚本,我有一个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,其中的每一个单词都作为变量集,稍后在命令中使用

这就是我到目前为止所尝试的

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行?)另外,
->
实际上是一个(奇怪的)变量名,我正在使用它,因为我并不真正关心行开头的数字。(假设这是一个实数。)