TCL 中的迭代使用 for each

Iteration in TCL using for each

我正在尝试在 TCL

中迭代使用 for each 的值

这是我输入的方式

./a.sh value1,value2

在 a.sh 脚本中

set var [lindex $argv 0]
set values [split $var ","]

foreach {set i 0} {$values} {
    puts "iterated once $i"
}

我希望迭代发生两次,因为传递了两个值。但它只迭代一次

请帮我解决这个问题

提前致谢

foreach 命令的最简单形式采用变量 name、列表 valuescript 到 运行 用于列表的每个元素。你路过的东西……同时在几个方面都很奇怪。看,这是正确的做法:

set values [split $var ","]

foreach item $values {
    puts "iterated: $item"
}

如果你想通过计数,你应该设置自己的计数器:

set values [split $var ","]

foreach item $values {
    set i [incr counter]
    puts "iterated #$i: $item"
}

可以缩短为:

foreach item [split $var ","] {
    puts "iterated #[incr counter]: $item"
}