当前位置:  技术问答>linux和unix

关于expect脚本遇到fflush引发的问题?

    来源: 互联网  发布时间:2016-11-11

    本文导语:  如题,用expect脚本来实现非交互式程序。但是如果原来的代码中有fflush,那么expect脚本执行到这就不往下跑了. 有人知道怎么解决吗?(前提是源代码是不能修改的) 还有,设置标准输入,输出的一些属性之后是不...

如题,用expect脚本来实现非交互式程序。但是如果原来的代码中有fflush,那么expect脚本执行到这就不往下跑了.

有人知道怎么解决吗?(前提是源代码是不能修改的)

还有,设置标准输入,输出的一些属性之后是不是也对expect脚本有影响?

|
没试过 对原理一向都不是很明白
你可以用perl的expect模块再试试 看看有没有同样的问题

|
在expect中,[]就是执行命令并进行结果替换的吧

|
匹配y 或n ?
还是完整匹配
[y|n]
?

|
这样?
expect "[y|n]"

|
对于那两种写法,我的测试小程序都是可以的

|

书上说“The spawn command normally returns the process id of the newly spawned process.”并解释说“"spawn -open" returns a process id of 0 to indicate no process was spawned. There is no process to kill.”。
给出的例子是:

set pid [spawn program]
. . .
# some time later
exec kill $pid

|
那就讨论一下哈,下面是以前的摸索结果

在expect脚本中添加这样一段,可以输出相关信息 --但不是每次都有效,有时甚至错误..

trap {
if [catch {wait -i -1} output] return
puts "caught SIGCHLD"
puts "pid is [lindex $output 0]"
puts "status is [lindex $output 3]"
} SIGCHLD

|
表示奇怪
fflush() 也是输出信息,会影响expect ?

|
测试程序
#include 
main()
{
char s[64];

printf("hello");
fflush(stdout);

gets(s);
printf("s=[%s]n", s);
}


expect脚本
#!/usr/bin/expect -f
spawn ./a.out
expect "hello"
send "okr"
expect eof


试验结果可以成功交互

|
看了楼上的测试 我就怀疑楼主本身的expect的脚本有问题

|
我不是什么大侠哈
刚学习用expect,你的那些用法我都没见过呢

试试expect -re "y/n" { send "yesr }

|

expect "[y/n]" # 此处expect 即使匹配到了[y/n]也不会做任何事情,相当于expect "[y/n]" {}
send "yesr" # 此处send是必然会执行的,不依赖于expect的匹配。

建议你用
expect {
"[y/n]" {send "yesr"}
}
试试?在expect和tcl中[]只需要转义第一个"["就行了,没必要[]。

|
我不是要杀死它
我想知道它正常终止时的退出状态

像在shell中,$?表示上个命令的退出状态
不知道在expect中如何得到?

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • [ lfs 提问 ] lfs6.2中6.11里-Binutils-2.16.1遇到无“expect”命令的问题
  • 如何不使用expect而作出expect最简单的功能?
  • 关于expect的问题
  • expect语言大批量非交互修改密码问题
  • (help)expect工具的问题
  • Expect 工具 Expectit
  • expect script,環境變數lang設定?
  • expect中为send语句上加变量的代码
  • 如何判断expect中调用的命令是否成功?
  • 100分请教高手 linux 下安装expect
  • expect: bad interpreter: Permission denied
  • 《急需解决的问题》关于run ‘expect script in a php file' 的问题!!!
  • expect 关于send关键的问题
  • expect 的问题
  • 自动化控制和测试的软件工具 Expect
  • 如何用 expect 输入密码
  • expect使用疑问
  • 求书 Exploring Expect (A Tcl-based Toolkit for Automating Interactive Programs)
  • 请教高手, 如何用expect实现BBS的自动登陆?
  • 学习expect
  • java开发知识 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3