gpt4 book ai didi

linux - 为什么在 TCL/Expect 的过程中使用跟踪日志时不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:00 25 4
gpt4 key购买 nike

以下代码未按预期输出到 sample.log 文件。有什么原因吗?可能与范围有关,但似乎无法弄清楚。

proc log_by_tracing { array element op } {
uplevel {
global logfile
set file $logfile($expect_out(spawn_id))
puts -nonewline $file $expect_out(buffer)
}
}

proc start_telnet {} {
spawn telnet 10.30.16.112
set logfile($spawn_id) [open sample.log w]
trace variable expect_out(buffer) w log_by_tracing
expect "login"
send "anonymous\r"


}

start_telnet

帮助

最佳答案

可能那个上层 block 无法替代你的想法。它的代码也很尴尬。您可以将变量传递到您知道的跟踪函数中,并避免全局和上层。

proc log {chan varname elt op} {
upvar #0 $varname v
puts -nonewline $chan "< $v(buffer)"
}
proc start_telnet {} {
set log [open sample.log w]
trace variable expect_out(buffer) w [list log $log]
...
}

关于linux - 为什么在 TCL/Expect 的过程中使用跟踪日志时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945431/

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