如何将 expect_out(buffer) 中的一行存储到 tcl 中的变量

How to store a line from expect_out(buffer) to a variable in tcl

例如,如果输出(在 expect_out(buffer) 中)是

blah 
blh blah
asdjsudfsdf

如何将第二行存储到变量中?到目前为止我有这个:

foreach line [split $expect_out(buffer) "\n"] {
  if [lindex $line 1] {
    set variable $line
  }
}

但这不起作用,它说变量variable未定义。我尝试添加一个计数器,但这也没有用。必须有更简单的方法!

是的,有一个更简单的方法:

set lines [split $expect_out(buffer) \n]
set variable [lindex $lines 1]

或一行

set variable [lindex [split $expect_out(buffer) \n] 1]

请注意,您知道 Tcl 命令是什么 return:split return 是一个列表。然后使用 lindex 查找列表的第二个元素。