Bash 如何在tcl中存储从expect_out(缓冲区)到变量的行
例如,如果输出(inBash 如何在tcl中存储从expect_out(缓冲区)到变量的行,bash,foreach,tcl,expect,Bash,Foreach,Tcl,Expect,例如,如果输出(inexpect\u out(buffer))为 如何将第二行存储到变量?到目前为止,我有: foreach line [split $expect_out(buffer) "\n"] { if [lindex $line 1] { set variable $line } } 但这不起作用,它表示变量变量未定义。我试着加一个计数器,但也没用。必须有一个更简单的方法 是的,有一个更简单的方法: set lines [split $expect_out(buffe
expect\u out(buffer)
)为
如何将第二行存储到变量?到目前为止,我有:
foreach line [split $expect_out(buffer) "\n"] {
if [lindex $line 1] {
set variable $line
}
}
但这不起作用,它表示变量
变量未定义。我试着加一个计数器,但也没用。必须有一个更简单的方法 是的,有一个更简单的方法:
set lines [split $expect_out(buffer) \n]
set variable [lindex $lines 1]
还是一行
set variable [lindex [split $expect_out(buffer) \n] 1]
记住您知道Tcl命令返回什么:split
返回一个列表。然后使用lindex
查找列表的第二个元素。是的,有一种更简单的方法:
set lines [split $expect_out(buffer) \n]
set variable [lindex $lines 1]
还是一行
set variable [lindex [split $expect_out(buffer) \n] 1]
记住您知道Tcl命令返回什么:split
返回一个列表。然后使用lindex
查找列表中的第二个元素。谢谢!另一个快速的问题是,如果我要存储除最后一行以外的所有内容,那么我会先计算行数,然后存储除最后一行以外的所有内容吗?还是全部集中在一个命令中?@user2883071:lrange$lines 0 end-1
如果只选择最后一行,则可能非常有用。但是你仍然会有一个行的列表。谢谢!另一个快速的问题是,如果我要存储除最后一行以外的所有内容,那么我会先计算行数,然后存储除最后一行以外的所有内容吗?还是全部集中在一个命令中?@user2883071:lrange$lines 0 end-1
如果只选择最后一行,则可能非常有用。但是你仍然会有一个行的列表。