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"
}

结尾

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

相关推荐
疯狂的维修1 小时前
PDPS关于cable的设定
自动化
深念Y2 小时前
从 Windows 迁移到 Linux 开发环境的记录
linux·windows·链接·bun·ram·imdisk
领创工作室2 小时前
GitHub Workflows 全面解析:从核心概念到开源实现
运维·github
吕海洋3 小时前
目前可用的docker源2026.08
运维·docker·容器
知无不研3 小时前
Linux I/O复用之epoll
linux·服务器·epoll·socket编程
苏宸啊4 小时前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
~|Bernard|4 小时前
Linux 定时任务(Cron)完整教程
linux·运维·服务器
小周学学学4 小时前
vmware-horizon第一章:horizon服务器安装
运维·服务器·vmware
小雪崩4 小时前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
gsls2008085 小时前
Penpot Docker 部署与 MCP 服务配置文档
运维·docker·容器·原型·penpot