簡體   English   中英

如何增加列表內的變量並在foreach循環中使用?

[英]How to increment a variable inside a list and use in foreach loop?

我的TCL腳本如下,

set a 1
while {$a < 6} {
    set interface [list ge1 vlan$a ge2 vlan$a ge3 vlan$a]
    foreach each $interface {
    puts $each
    }
incr a
}

現在我得到如下所示的輸出:

 C:\Desktop>tclsh loop_through_same_list_increment_variable.tcl
ge1
vlan1
ge2
vlan1
ge3
vlan1
ge1
vlan2
ge2
vlan2
ge3
vlan2
ge1
vlan3
ge2
vlan3
ge3
vlan3
ge1
vlan4
ge2
vlan4
ge3
vlan4
ge1
vlan5
ge2
vlan5
ge3
vlan5

C:\\桌面>

但我試圖獲得如下所示的輸出:

ge1
vlan1
vlan2
vlan3
vlan4
vlan5
ge2
vlan1
vlan2
vlan3
vlan4
vlan5
ge3
vlan1
vlan2
vlan3
vlan4
vlan5

我想使用上述TCL腳本僅循環VLAN。

我不確定您的預期用途,但這可能會有所幫助

#Keeping interfaces as a list
set interface [list ge1 ge2 ge3]
#Looping the each interface with vlan values
foreach ge $interface {
    puts $ge
    set a 1
    while { $a < 6 } {
      puts vlan$a   
      incr a
    }
}

我們可以用Donal在這里提到的另一種方法來做到這一點 但是,我不確定接口和VLAN的數量是否不符合您的要求。 如果是的話,我們本可以使用單個foreach覆蓋整個輸出,而不是兩個循環。 對於這個問題可以有多種解決方案。 這是一個可以滿足您需求的樣品。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM