【发布时间】:2011-10-29 15:45:16
【问题描述】:
我正在尝试编写一个期望脚本,部分命令将作为不同的用户执行。所以我需要生成一个 kuu 进程,然后在用户提供密码后向它发送命令。但是如何收集这些命令的输出并将其打印给运行期望脚本的用户?
谢谢
【问题讨论】:
我正在尝试编写一个期望脚本,部分命令将作为不同的用户执行。所以我需要生成一个 kuu 进程,然后在用户提供密码后向它发送命令。但是如何收集这些命令的输出并将其打印给运行期望脚本的用户?
谢谢
【问题讨论】:
这可以通过以下方式来完成:
proc outputUntilPrompt {} {
global expect_out
set prompt "ACT:*>*"
set output ""
while 1 {
expect {
-re "(\[^\r]*\)\r\n" {
append output $expect_out(buffer)
}
$prompt {
append output $expect_out(buffer)
break
}
}
}
return $output
}
send_user "$output"
【讨论】:
append output $expect_out(buffer)而不是set output "$output$expect_out(buffer)";效果相同,执行速度更快。