Expect - 不强制输入到生成的进程

发布于 2024-08-04 13:46:20 字数 732 浏览 8 评论 0原文

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-> 

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

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

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
########################################################
########################################################

Here logfile has output as:

RTS_Mon-> 

*RTS_Mon-> 

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

So it seems as if input is not forced to the process.
Is there something wrong to above script?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

匿名的好友 2024-08-11 13:46:20

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

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”正确返回

I don't known if it was a copy&paste error, but I don't think your code will work, should be something like:

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

Also make sure that the "exp_spawn" returns properly

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文