【问题标题】:Expect - does not force input to spawned process期望 - 不强制输入生成的进程
【发布时间】:2014-12-25 19:12:18
【问题描述】:
package require Expect

#### Log File Name #####
set logFile "mtte_result.log"
set NextLine "\n"
set RTSPrompt "RTS_Mon-> "
exp_spawn plink.exe -telnet -P 10009 10.245.97.42

set spid $spawn_id
#exp_send $NextLine
flush stdout

##### Log the session to the File   #########
    exp_log_file -noappend $logFile

exp_sleep 5
exp_send $NextLine
expect $RTSPrompt
exp_send "hello world\r"

expect $RTSPrompt
exp_sleep 5
exp_close -i $spid
########################################################
########################################################

这里日志文件的输出为:

RTS_Mon-> 

*RTS_Mon-> 

#####################################

所以看起来好像输入没有被强制到进程中。 上面的脚本有问题吗?

【问题讨论】:

标签: tcl expect


【解决方案1】:

我不知道这是否是复制和粘贴错误,但我认为您的代码不会起作用,应该是这样的:

package require Expect
# Log File Name
set logFile "mtte_result.log" 
set NextLine "\n" 
set RTSPrompt "RTS_Mon-> " 
exp_spawn plink.exe -telnet -P 10009 10.245.97.42
set spid $spawn_id
exp_send $NextLine
flush stdout
# Log the session to the File
exp_log_file -noappend $logFile
exp_sleep 5 
exp_send $NextLine 
expect $RTSPrompt 
exp_send "hello world\r"
expect $RTSPrompt 
exp_sleep 5 
exp_close -i $spid

还要确保“exp_spawn”正确返回

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 2015-02-03
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多