gpt4 book ai didi

tcl - 在 TCL 中,如何让一个变量使用另一个变量的值

转载 作者:行者123 更新时间:2023-12-01 07:16:48 25 4
gpt4 key购买 nike

我需要在另一个变量中使用一个变量的值。

这是我试过的..

set cmd_ts "foo bar"
set confCmds {
command1
command2
$cmd_ts
}
puts "confCmds = $confCmds"

但不是得到
confCmds = 
command1
command2
foo bar

我正进入(状态:
confCmds =
command1
command2
$cmd_ts

附言我尝试了以下无济于事
  • $cmd_ts
  • "$cmd_ts"
  • {$cmd_ts}
  • \$cmd_ts
  • 最佳答案

    (几乎)只要您使用花括号,什么都不会起作用。最好的建议是使用 list 命令:

    set confCmds [list command1 command2 $cmd_ts]

    我说(几乎)是因为您可以使用 subst 对 confCmds 进行变量替换,但这并不是您真正想要的,而且充满危险。您想要的是一个单词列表,其中一个或多个可以由变量定义。这正是上述解决方案为您提供的。

    如果需要,您可以使用反斜杠将命令分布在多行上:
    set confCmds [list \
    command1 \
    command2 \
    $cmd_ts \
    ]

    此解决方案假定您想要的是 tcl 列表。这可能是也可能不是您想要的,这完全取决于您如何在下游处理这些数据。

    在您写的评论中,您真正想要的是一串以换行符分隔的项目,在这种情况下,您可以只使用双引号,例如:
    set confCmds "
    command1
    command2
    $cmd_ts
    "

    这将为您提供一个由换行符分隔的多行字符串。小心尝试将其视为命令列表(即:不要执行 'foreach foo $confCmds'),因为它可能会失败,具体取决于 $cmd_ts 中的内容。

    关于tcl - 在 TCL 中,如何让一个变量使用另一个变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852157/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com