Tcl中的大型文本替换

And*_*rey 1 tcl

在我的Tcl脚本中,我正在用另一种语言构建源代码.以gnuplot源为例.我有这样的Tcl代码:

# `script' variable contains gnuplot source code
set script {
  set terminal pdf
  set output "chart.pdf"
  set title "[makeTitle]"
  plot "$dataFile" using 1:2 title ""
}

# Then I write `script' to file for later execution

请注意,script变量包含命令call(makeTitle)和变量substitution(dataFile).源代码本身包含新行,双引号.

问题:如何简单地"评估"此变量以通过结果和变量的值替换命令调用?预期结果应如下所示:

  set terminal pdf
  set output "chart.pdf"
  set title "R(S) Dependence"
  plot "r_s.txt" using 1:2 title ""

gle*_*man 7

你正在寻找subst命令:

set result [subst $script]
Run Code Online (Sandbox Code Playgroud)