TCL heredoc中的变量替换

时间:2016-12-29 05:30:36

标签: tcl heredoc

exec -- sftp user@127.0.0.1 {<<
get $filename
quit}

我如何替换$ filename?

1 个答案:

答案 0 :(得分:4)

要获取变量替换,请使用双引号而不是大括号。标准Tcl规则,虽然在这种情况下你可能会感到惊讶。 (我建议将<<外部作为自己的参数,因为我认为这样更清楚。)

exec -- sftp user@127.0.0.1 << "
get $filename
quit"

您也可以使用subst命令。有时候更清楚;它在很大程度上是相同的(除了一些非常精细的细节,除非你做大型的模板文件,否则不要太重要)。

exec -- sftp user@127.0.0.1 << [subst {
    get $filename
    quit
}]