>> set signal_name [get_fanout abc_signal]
{xyz_blah_blah}
>> echo $signal_name
@142
>> set signal_name [get_fanout abc_signal]
{xyz_blah_blah}
>> echo $signal_name
@144
>>
我尝试了其他东西,比如catch等,而且每个地方都会返回@number。我的目标是能够打印实际值而不是数字 - xyz_blah_blah。
我是tcl的新手。想要了解,如果这是一个数组或指向数组的指针或类似的东西。当我尝试使用不同的命令完全相同的东西,它只返回一个值,然后它的工作原理。这是一个在括号中返回值的新命令。
请帮忙。感谢。
答案 0 :(得分:0)
每个Tcl命令都会生成一个结果值,您可以通过将命令调用[
方括号]
并将整个批次作为一部分来捕获和使用该值另一个命令的参数。因此,在:
set signal_name [get_fanout abc_signal]
调用get_fanout
的结果用作set
的第二个参数。我建议您也可以尝试这样做:
puts "-->[get_fanout abc_signal]<--"
它是一样的,除了这次我们将它与其他一些小字符串串联并打印出整个批次。 (如果你想知道,如果没有错误,puts
本身的结果总是空字符串,set
返回变量的内容。)
如果仍然打印错误的值(以及正确的值,周围没有箭头标记),真正的问题可能是get_fanout
没有按照您的预期进行操作。虽然它是possible to capture the standard output of a command,但这样做是一种相当先进的技术;考虑是否有替代机制来实现您想要的东西可能更好。 (get_fanout
命令不是Tcl语言库的标准部分或任何非常常见的附加库,如Tk或Tcllib集合,因此我们只能猜测它的行为。)