Linux *** 作系统中expect如何使用?

Linux *** 作系统中expect如何使用?,第1张

在Linux系统中,expect是一个自动化交互套件,也是一个用来处理交互的命令利用expect,我们可以将交互过程写在一个脚本上,让其自动化完成,从而帮助运维人员提高工作效率、节约时间。那么Linux系统中expect该如何使用?我们来看看详细的内容介绍。

Linux系统中expect该如何使用?

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。

expect自动交互流程:

spawn启动指定进程--expect获取指定关键字--send向指定程序发送指定字符--执行完成退出。

注意:该脚本能够执行的前提条件是安装了expect

yum install -y expect

expect常用命令总结:

spawn 交互程序开始后面跟命令或者指定程序

expect 获取匹配信息匹配成功则执行expect后面的程序动作

send exp_send 用于发送指定的字符串信息

exp_continue 在expect中多次匹配就需要用到

exit 退出expect脚本

eof expect 执行结束 退出

set 定义变量

puts 输出变量

set timeout 设置超时时间。

直接shell获取C程序的打印输出(如one,two)有难度,这些不是程序返回值。

当然,也可以考虑将C程序输出拷贝一份到临时文件(覆盖写方式),shell通过解析文件内容判断。

#!/bin/sh

interact()

{

   input=$1

   echo $input sleep 1 sync

   read ouput <tmp

}

./test | tee tmp &

sleep 2

interact 1

[ "$output" != "one" ] && exit 1

interact 0

[ "$output" != "exit" ] && exit 1

rm -f tmp

exit 0

用&将test程序置于后台运行,这样在程序未结束前,后面的脚本也可以得到执行。

这种通过sleep来控制的方式不是很精准,还是用 Expect 脚本来控制串行 *** 作比较靠谱些。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7087278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存