expect/tcl 的问题, 自动保存结果失败

作者:用户 来源:互联网 浏览:285 次 时间:2016-03-17 12:52:40

tcl自动保存结果expect

expect/tcl 的问题, 自动保存结果失败 - 摘要: expect/tcl的问题,自动保存结果失败想写一个具有以下功能的tcl脚本,但是总是碰见问题读取文件a中的命令,并将其send到远端的lab上在碰到结束符$的时候,查询是否执行完成执行完成之后,se

问题描述

expect/tcl 的问题, 自动保存结果失败

想写一个具有以下功能的tcl脚本,但是总是碰见问题
读取文件a中的命令,并将其send到远端的lab上
在碰到结束符$的时候,查询是否执行完成
执行完成之后,send查询语句,并将结果保存到文件。
碰见的问题:
只能保存最开始的查询结果,以后的会跳出
记录只能保存在文件的末尾...
code在后边附上,哪位大神给帮忙看看额

proc Is_finished {} {
set flag TRUE
while {$flag} {
send ""query finishr""
expect {
inquery"" {sleep 5; continue}
finish"" {set flag FALSE}
timeout { puts $log ""test fail"";set flag FALSE}
}
}
}
proc save_result {} {
set log [open Result w+]
log_file -open $log
send ""query statusr""
expect ""#""
send ""puts all logr""
expect ""#""
send ""r""
expect ""#""
log_file

close $log

}
set file [lindex $argv 0]
set fileid [open $file r+]
seek $fileid 0 start
set timeout 120
spawn ssh admin@192.168.0.115
expect ""password:""
send -- ""123456r""
expect "":admin>#""
while {1==1} {
set chars [gets $fileid line1]
if { $chars == 0 } {continue} else {
if { $chars < 0 } {break} else {
if { [string index $line1 0] == ""#"" } {
#puts $log ""==================$line1.result=====================""
} else {
if { [string index $line1 0] == ""$"" } {
Is_finished
save_result
} else {send ""$line1r""}
}
}
}
}
close $fileid

解决方案

在close $log之前先flush $log试试

【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?  详情请点击
云栖社区(yq.aliyun.com)为您免费提供expect/tcl 的问题, 自动保存结果失败相关信息,包括 tcl自动保存结果expect 的信息 ,所有expect/tcl 的问题, 自动保存结果失败相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_99612,您可以点击expect/tcl 的问题, 自动保存结果失败-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备

热点导航