简介

最近工作中遇到这样的需要,需要使用easy-rsa来自动生成某些证书,生成证书过程中需要用户手动输入一些信息。大佬对我说,小伙你试试将这个过程变成自动化的,于是就有了这篇东西了。就当小总结吧。

什么是expect?

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

expect自动交互流程
spawn启动指定进程--->expect获取匹配指定关键字--->send向指定程序发送指定字符--->执行完成退出
expect常用指令
指令 描述
spawn 交互程序开始后面跟命令或者指定程序
expect 获取匹配信息匹配成功则执行expect后面的程序动作
send, exp_send 用于发送指定的字符串信息
send_user 用来打印输出 相当于shell中的echo
exit 退出expect脚本
eof expect执行结束 退出
set 定义变量
puts 输出变量
set timeout 设置超时时间
interact 允许用户交互
例子
#!/usr/bin/except

spawn sudo pacman -S masscan
expect "\[sudo\] password for*" {send "123456\r"; exp_continue;}

send_user "end\n"

that's all

results matching ""

    No results matching ""