Expect脚本-For循环-如何使用多个变量

问题描述

如何在Expect脚本“ for循环”中使用多个变量?请帮忙。 预先感谢。

具有一个变量:

for {set i 1} {$i < 256} {incr i 1} {

}

如何使用2或3个变量(例如init,condition, i j k 的增量)? 逗号,分号不起作用。

谢谢, 克里希纳

解决方法

请记住,期望是Tcl的扩展。 Documentation of Tcl可用。

for的语法是:

用于 开始测试下一个身体

“开始”和“下一个”均被评估为脚本。 “测试”是一个expr会话

您可以这样做:

for {set i 1; set j 10; set k "x"} {$i < 5 && $j > 0} {incr i; incr j -2; append k x} {
    puts "$i\t$j\t$k"
}

输出

1   10  x
2   8   xx
3   6   xxx
4   4   xxxx

这等效于以下内容,因此请使用可读性最高的内容。

set i 1
set j 10
set k "x"

while {$i < 5 && $j > 0} {
    puts "$i\t$j\t$k"

    incr i
    incr j -2
    append k x
}

实际上,您也可以在for命令中自由使用换行符

for {
    set i 1
    set j 10
    set k "x"
} {
    $i < 5 && $j > 0 
} {
    incr i
    incr j -2
    append k x
} {
    puts "$i\t$j\t$k"
}