Linux中用于自动化交互式程序的工具!expect

Linux中用于自动化交互式程序的工具!expect

expect 是一个用于自动化交互式程序的工具,它可以模拟用户输入和接收程序的输出。它通常与Tcl脚本一起使用,但也可以与其他脚本语言一起使用。expect的主要功能是等待特定的字符串或正则表达式出现,然后执行相应的操作。

expect的基本语法如下:

bash 复制代码
expect "pattern" [timeout] { command }

参数说明:

bash 复制代码
pattern:要等待的字符串或正则表达式。
timeout:可选参数,表示等待的最长时间(以秒为单位)。如果在指定的时间内没有找到匹配的模式,expect将返回一个错误。
command:当找到匹配的模式时,要执行的命令。
变量命令:

expect支持一些变量命令,如send、expect_exact、expect_maxtime等。这些命令可以用于设置和获取expect的状态。

代码块案例演示:

等待字符串出现并发送命令:

bash 复制代码
#!/usr/bin/expect# 等待字符串"Hello, World!"出现
expect "Hello, World!" {
    # 发送命令"echo 'Hello, expect!'"
    send "echo 'Hello, expect!'\r"
}

等待正则表达式出现并发送命令:

bash 复制代码
#!/usr/bin/expect

# 等待正则表达式"\d+"出现
expect_exact "\d+" {
    # 发送命令"echo 'Found a number: $number'"
    send "echo 'Found a number: $number'\r"
}

设置超时时间:

bash 复制代码
#!/usr/bin/expect

# 设置超时时间为5秒
set timeout 5

# 等待字符串"Hello, World!"出现,如果超过5秒仍未出现,则返回错误
expect "Hello, World!" {
    # 发送命令"echo 'Hello, expect!'"
    send "echo 'Hello, expect!'\r"
}

结尾

以上就是本期的全部内容,希望对大家有帮助,一键三连拜谢!

相关推荐
lsh曙光3 小时前
延时at指令和定时cron指令
linux·服务器·网络
圆山猫4 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
布鲁飞丝4 小时前
vivo Pulsar 万亿级消息处理实践()-Ansible运维部署
运维·ansible
XR1234567884 小时前
企业全光网络架构选型技术白皮书:从物理层到运维层的全链路分析
运维·网络·架构
似的8354 小时前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
IT小白杨4 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
HiDev_4 小时前
【非标自动化】2、认识元器件(直线模组)
运维·自动化
浦信仿真大讲堂5 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
龙仔7255 小时前
人大金仓 KingbaseES V8 只读账号创建完整运维笔记
运维·笔记·sql·人大金仓
我不管我就要叫小猪6 小时前
嵌入式Linux----网络通信
linux·运维·服务器