使用Linux 'foreach'命令构建列表迭代器

使用此命令构建循环,假定来自一个或多个列表的值

foreach命令实现了一个循环变量假设这些值来自一个或多个列表。

剧情简介

该命令有以下两种形式:

Foreach变量名列表主体
varlist1 list1 ?varlist2 list2…身体

在最简单的情况下,有一个循环变量,varname,一个列表,列表,用于标识要赋值的值varname.的身体参数是一个Tcl脚本。对于的每个元素列表(按从前到后的顺序)foreach将元素的内容赋给varname就好像lindex命令已用于提取元素,然后调用Tcl解释器执行身体

巴布亚企鹅,库弗维尔岛,南极洲
保罗·苏德斯/盖蒂图片社

使用笔记

在一般情况下,可以有多个值列表(例如,list1而且用于),并且每个值列表可以与一个循环变量列表相关联(例如,varlist1而且varlist2).在循环的每次迭代过程中,每个的变量varlist是否分配了对应的连续值列表.每个的值列表是按照从第一个到最后一个的顺序使用的,并且每个值只使用一次。

循环迭代的总数足够大,可以使用所有值列表中的所有值。如果值列表在每次迭代中没有为每个循环变量包含足够的元素,则对缺少的元素使用空值。

打破而且继续语句可以在内部调用身体,效果与命令。的foreach返回一个空字符串。

例子

下面的循环使用而且j作为循环变量,遍历单个列表的元素对。

集合x {}
Foreach {i j} {a b c d e f} {
lapend x $j $i

# x的值是"b a d c f e"
循环有3次迭代。

下一个循环使用而且j并行遍历两个列表。

集合x {}
Foreach I {a b c} j {d e f g} {
lapend x $i $j

# x的值是"a d b e c f {} g"
循环有4次迭代。

下面的示例将结合这两种表单。

集合x {}
Foreach I {a b c} {j k} {d e f g} {
lapend x $i $j $k

# x的值是"a d e b f g c {} {}"
循环有3次迭代。

使用的几个相关命令foreach包括打破,继续

这个页面有用吗?