(ほとんど)中括弧を使用している限り、何も機能しません。最良の提案は、listコマンドを使用することです。
set confCmds [list command1 command2 $cmd_ts]
confCmdsで変数置換を行うためにsubstを使用できるので、私は(ほぼ)言いますが、それは本当にあなたが望むものではなく、それは危険に満ちています。必要なのは単語のリストで、そのうちの1つ以上を変数で定義できます。それはまさに上記の解決策があなたに与えるものです。
必要に応じて、円記号を使用してコマンドを複数行に広げることができます。
set confCmds [list \
command1 \
command2 \
$cmd_ts \
]
このソリューションは、必要なのがtclリストであることを前提としています。これはあなたが望むものであるかもしれないし、そうでないかもしれません、それはすべてあなたがこのデータを下流でどのように扱うかに依存します。
コメントで、本当に必要なのは改行で区切られた項目の文字列であると書きました。この場合、たとえば、二重引用符を使用できます。
set confCmds "
command1
command2
$cmd_ts
"
これにより、改行で区切られた複数の行を持つ文字列が得られます。$ cmd_tsの内容によっては失敗する可能性があるため、これをコマンドのリストとして扱わないように注意してください(つまり、'foreach foo $ confCmds'を実行しないでください)。