花括号中的变量双引号tcl

花括号中的变量双引号tcl,tcl,Tcl,我正在使用此脚本我希望脚本替换session.mvw文件的第二行,因此我要求输入“name”,如果我输入2222作为输入,我希望session.mvw文件的第二行为{GRAPHIC_file_1=“E:/ge work/hyperview scripting/222.rst”} 但这是唯一的付出 {GRAPHIC_FILE_1=“E:/ge work/hyperview scripting/${name}.rst”} Tcl有一个一般规则,它不在大括号内进行替换。这通常是正确的。然而,在这种情况

我正在使用此脚本我希望脚本替换session.mvw文件的第二行,因此我要求输入“name”,如果我输入2222作为输入,我希望session.mvw文件的第二行为
{GRAPHIC_file_1=“E:/ge work/hyperview scripting/222.rst”}
但这是唯一的付出
{GRAPHIC_FILE_1=“E:/ge work/hyperview scripting/${name}.rst”}

Tcl有一个一般规则,它不在大括号内进行替换。这通常是正确的。然而,在这种情况下,你需要更多的东西。对于这类情况,有一个执行这些替换的
substict
命令:


(注意:如果您使用
subst
生成Tcl代码,则可能是做错了。在本例中,这并不是您正在做的事情,但仍然是对所有读者的警告…

如果您希望在值周围加大括号,可以这样做

puts $out [list "GRAPHIC_FILE_1 = \"E:/ge work/hyperview scripting/${name}.rst\""]
还是这个

puts $out "{GRAPHIC_FILE_1 = \"E:/ge work/hyperview scripting/${name}.rst\"}"
两者都打印字符串

{GRAPHIC_FILE_1=“E:/ge work/hyperview scripting/222.rst”}


大括号内不会发生变量替换。将其更改为
put$out“GRAPHIC\u FILE\u 1=\”E:/ge-work/hyperview-scripting/${name}.rst\”
但我想要的正是{GRAPHIC\u-FILE\u 1=“E:/ge-work/hyperview-scripting/222.rst”}。我的下一个命令取决于我需要大括号,以便下一个hyperview软件能够识别该行。那么,我如何修改我的脚本,以便它能够给出正确的命令{GRAPHIC_FILE_1=“E:/ge-work/hyperview-scripting/222.rst”}这是以222作为输入输出的
puts $out [list "GRAPHIC_FILE_1 = \"E:/ge work/hyperview scripting/${name}.rst\""]
puts $out "{GRAPHIC_FILE_1 = \"E:/ge work/hyperview scripting/${name}.rst\"}"