Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在tcl中存储从expect_out(缓冲区)到变量的行_Bash_Foreach_Tcl_Expect - Fatal编程技术网

Bash 如何在tcl中存储从expect_out(缓冲区)到变量的行

Bash 如何在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

例如,如果输出(in
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
如果只选择最后一行,则可能非常有用。但是你仍然会有一个行的列表。