使用Linux“foreach”命令構建列表迭代器

編程時foreach命令實現了一個循環,其中循環變量呈現來自一個或多個列表的值。 在最簡單的情況下,有一個循環變量varname和一個list list ,它是要分配給varname的值列表。 body參數是一個Tcl腳本。 對於列表中的每個元素(從第一個到最後一個), foreach將元素的內容賦值varname ,就好像lindex命令已經用於提取元素一樣,然後調用Tcl解釋器來執行主體

概要

foreach varname list body
foreach varlist1 list1varlist2 list2 ...身體

討論

在一般情況下,可以有多個值列表(例如, list1list2 ),並且每個值列表可以與一個循環變量列表(例如, varlist1varlist2 )相關聯。 在循環的每次迭代期間,每個varlist的變量都會從相應的列表中分配連續的值。 每個列表中的值按從頭到尾的順序使用,每個值只用一次。 循環迭代的總數足夠大,可以用盡所有值列表中的所有值。 如果每個迭代中值列表中的每個循環變量都沒有包含足夠的元素,則會為缺少的元素使用空值。

breakcontinue語句可以在body中調用,效果與for命令相同。 結果返回一個空字符串。

例子

以下循環使用ij作為循環變量來遍歷單個列表的元素對。

set x {} foreach {ij} {abcdef} {lappend x $ j $ i}#x的值是“badcfe”#循環有3次迭代。

下一個循環使用ij並行迭代兩個列表。

set x {} foreach i {abc} j {defg} {lappend x $ i $ j}#x的值是“adbecf {} g”#循環有4次迭代。

下面的例子將這兩種形式組合在一起。

set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k}#x的值是“adebfgc {} {}”#循環有3次迭代。

筆記

幾個相關的命令與foreach一起工作,包括:

由於Linux發行版和內核版本級別不同,請使用man命令( %man )查看特定計算機上特定使用的命令。