tcl命令重定向到变量,tcl版本是8.4

Lio*_*gan 10 tcl output-redirect

我想将1命令的输出重定向到一个变量,其中OUTPUT通常是STDOUT.我正在运行一个EDA工具,它具有tcl interpeter和它自己的命令.假设该工具有一个tcl查询,它说

TOOL> find_transistor m*
m1 m2 m3 m4
Run Code Online (Sandbox Code Playgroud)

我想有办法做到以下几点:

TOOL> set ret redirect {find_transistor m*}
TOOL> puts $ret
m1 m2 m3 m4
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Jac*_*son 5

纯Tcl很好

set ret [find_transistor m*]
Run Code Online (Sandbox Code Playgroud)

可能会做你想要的。尝试阅读Tcl 教程

  • 如果“ find_transistor”将其结果写入标准输出,则此方法将无效。您的示例所做的只是保存了`find_transistor`返回的所有内容,不幸的是,这并不是问题的所在。 (5认同)

小智 5

这可能有效:

redirect -variable ret {find_transistor m*}

puts $ret
Run Code Online (Sandbox Code Playgroud)

  • 嗯,这只适用于Synopsys公司的工具.即使它没有回答原始问题,它仍然是一个很好的答案.至少它很可能解决了许多人来到这里的问题.但是`redirect`不是普通的Tcl命令,因此在普通的Tcl中不起作用,并且在任何其他基于Tcl的EDA工具中都不太可能. (4认同)