如何在tcl中循环变量

时间:2014-09-12 13:35:45

标签: loops variables tcl

我是tcl的新手。我有一些疑问,我可以在tcl中循环变量。

我设置了一个名为handle的变量,即

set handle [pcap open -ip 192.168.1.3] 

这会创建一个句柄pcap0。我想知道是否可以在tcl中循环这个变量,这样我就可以创建一个十个句柄。

2 个答案:

答案 0 :(得分:2)

您有两个选择:列表和数组。

1。使用列表

在Tcl中,列表是,其中包含一系列其他(任意)值。您可以使用lappend在包含foreach的变量的列表末尾添加内容,并使用foreach ipaddress {192.168.1.3 192.168.1.4 192.168.1.5 ...} { lappend handles [pcap open -ip $ipaddress] } foreach handle $handles { # Do something with $handle here } 遍历列表。

set the_addresses {192.168.1.3 192.168.1.4 192.168.1.5 ...}
foreach ipaddress $the_addresses {
    set handle($ipaddress) [pcap open -ip $ipaddress]
}

foreach ipaddress $the_addresses {
    # Do something with $handle($ipaddress) here
}

2。使用数组

在Tcl中,数组是由关联映射支持的复合变量(您可以查找所需的任何值,不一定是数字)。他们可以很好地使用列表。

{{1}}

哪种选择最好取决于您正在做什么的细节。

答案 1 :(得分:0)

Donal给出了似乎完整的答案,如果IP地址相同,只需:

set handles ""
set ipaddress 192.168.1.3
for {set i 0} {$i < 10} {incr i} {
    lappend handles [pcap open -ip $ipaddress]
}

foreach handle $handles {
    # Do something with $handle here
}