Tcl & Expect

这篇博客介绍了如何利用Tcl与Expect进行自动化交互,包括spawn启动目标程序,send发送输入,expect根据输出匹配执行操作,以及interact将控制权交给用户。还详细讲解了exp_continue、expect_user、expect_before和expect_after的用法,并提到了cooked模式和raw模式在处理特殊字符上的区别。此外,还提及Tcl语言的一些基本语法和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 流程

  1. 运行一个Expect程序

  2. spawn寄生目标程序,接管目标程序的输入输出

  3. expect判断目标程序的输出,做相应逻辑判断

  4. send用来向目标程序输入

  5. interact将控制权交给用户

2. spawn

寄生目标程序,接管目标程序的输入输出,这通常都是expect脚本的第一步,默认情况下,spawn会回显命令名称和参数,可以用-noecho参数来让它不回显

3. send

Characters are sent immediately although programs with line-buffered input will not read the characters until a return character is sent. A return character is denoted "\r".

向目标程序输入,字符直接发送给程序,但要注意,行缓冲输入的程序直到收到一个return字符才会接收这些输入字符,return字符用"\r"表示

  1. send_user 输入到 stdout,一般做提示用

4. expect

匹配被寄生的程序的输出与模式,如果匹配上,执行相应动作。匹配成功或超时或遇到文件尾时都会返回

一旦匹配上,则开始执行对应的语句。默认情况下,模式采用Tcl语言的string match命令匹配

模式中可用的特殊符号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值