#!/bin/sh
# This is a trial program
puts "++++++++++++++++++++++++++++++++++++++++++++++++++"
set y "0.0.0.0"
set z [split $y "."]
puts "z=$z"
lreplace $z 0 5
puts "z $z"
set v [llength $z]
puts "length of array= $v"
puts "in the loop-------->\n"
puts " "
incr v -1
puts $v
for {set ml $v } { $ml >= 0} { puts "$ml =ml"} {
for { set nl [lindex $z $ml]} { $nl >=4} { puts "$nl=nl"} {
puts $nl
after 2000
lset z $ml $nl
incr $nl
}
after 2000
incr ml -1
}
我不能輸入第二個循環,這是一個格式問題? 給了我一些奇怪的錯誤。我添加了睡眠只是爲了檢查發生了什麼,所以忽略了這一點。嵌套循環問題TCL
是否有任何理由您使用'lreplace $ z 0 5'? – Jerry
+1 Jerry的評論:'lreplace $ z 0 5'實際上並沒有在這個程序中做任何事情。該命令根據z中的元素創建一個結果列表,並刪除所有那些到達(不存在)索引5的元素,然後不在任何地方分配這個結果列表。 –
如果你的目的是用5:s代替0:s,這將會更好地工作:'set z [lmap elem $ z {expr {$ elem == 0? 5:$ elem}}]' –