有人能指出我的tcl脚本有什么问题吗.我是新来的tcl,并试图找出如何获得我想要的输出。
我想要"for循环“打印出descLvds1,descLvds2 . descLvds8的内容,即"LVDS1回环”,"LVDS2回环“."LVDS8回环“但我无法得到我想要的输出.这是代码的一部分,问题在$descLvds$i,任何帮助都是非常感谢的.
set descLvds1 "LVDS 1 loopback"
set descLvds2 "LVDS 2 loopback"
...
set descLvds8 "LVDS 8 loopback"
for {set i 1} {$i < 9 } {incr i} {
puts "Chan$i $descLvds$i"
}发布于 2019-04-14 04:59:41
您可以使用set来设置变量的值和获取变量的值。若要从其他变量中获取具有名称的变量的值,可以使用变量替换(例如:$i)创建变量名,然后使用set获取该变量的值。
示例:
for {set i 1} {$i < 9 } {incr i} {
set varname "descLvds$i"
puts "Chan$i [set $varname]"
}如果需要,可以将这两行合并为一个:
for {set i 1} {$i < 9 } {incr i} {
puts "Chan$i [set descLvds$i]"
}发布于 2019-04-14 06:41:21
理想情况下,可以将这些变量命名为稍微不同的变量,这样就可以使用关联数组元素。可以让你这么做:
set descLvds(1) "LVDS 1 loopback"
set descLvds(2) "LVDS 2 loopback"
...
set descLvds(8) "LVDS 8 loopback"
for {set i 1} {$i < 9 } {incr i} {
puts "Chan$i $descLvds($i)"
}那确实有用。
发布于 2019-04-15 08:30:00
这可能是因为为您的问题创建了一个简短的示例,但是如果输入元素遵循词法顺序(descLvds1、descLvds2、.),那么可以使用lappend和foreach循环将其追加到列表中:
lappend descLvds "LVDS 1 loopback"
lappend descLvds "LVDS 2 loopback"
# ...
lappend descLvds "LVDS 8 loopback"
foreach descLvd $descLvds {
puts $descLvd
}https://stackoverflow.com/questions/55672000
复制相似问题