我有以下情况:
2000::$var/22 2000:400::$var/22 2000:800::$var/22
我想在文本文件中存储以上3行。然后逐个打印,打印1到15,如下所示。
2000::1/22 2000::2/22 2000::3/22 2000::4/22 2000::5/22 . . . 2000::15/22
当我从文件导入每一行时,如上所示不打印。它打印变量名称本身如下所示。
2000::$var/22 2000::$var/22
请指导我,如何解决此问题。
谢谢, Balu P。
答案 0 :(得分:2)
TCL有一个名为subst
的命令,可以执行您想要的操作。您所要做的就是设置var
的值,然后调用subst
:
set fileHandle [open data.txt]
while {[gets $fileHandle line] != -1} {
for {set var 1} {$var <= 15} {incr var} {
puts [subst -nocommand $line]
}
}
while
循环将逐行读取文件,直到文件末尾var
设置为1 .. 15 subst
进行替换,然后再将其打印出来根据Glenn Jackman的出色建议,我使用-nocommand
更新了代码以防止命令扩展,这可能为恶意代码打开大门。