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

时间:2015-03-01 00:31:56

标签: bash foreach tcl expect

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

blah 
blh blah
asdjsudfsdf

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

或一行

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

请注意,您知道Tcl命令返回的内容:split返回一个列表。然后使用lindex查找列表的第二个元素。