在 linux 中读取预期文件中的输出

Read the output in an expect file in linux

我正在尝试读取命令的输出并将其设置在变量中,然后像文本一样发送到文件:

expect "~]#" { send "readlink some/link\r" }
set CCM_BUILD $expect_out(buffer)
send_log "CCM: $CCM_BUILD"

但我在文件中得到的是:

can't read "expect_out(buffer)": no such variable
    while executing
"set CCM_BUILD $expect_out(buffer)"
    (file "../common/get_build.exp" line 20)^M

我尝试了不同的方法,但我发现似乎没有任何效果。我在这里错过了什么?

在您调用 expect 之前,变量 $expect_out(buffer) 不会更新。所以像这样尝试:

expect "~]#" { send "readlink some/link\r" }
expect "~]#" { set CCM_BUILD $expect_out(buffer) }