23、Expect 工具使用指南:从基础到高级应用

Expect 工具使用指南:从基础到高级应用

1. expect_tty 与 send_tty 命令

1.1 expect_tty 命令的局限性

使用 expect_tty 存在一定的缺点,它无法通过 shell 进行重定向。虽然这看似与该命令的设计初衷相悖,但在某些情况下,我们可能希望强制命令从文件中获取输入,例如在测试 more 命令时。由于 more 命令的特性,它无法通过 shell 实现自动化操作(不过可以使用 Expect 实现自动化)。因此,不应随意使用 expect_tty,因为它生成的程序在管道中通常表现不佳,难以作为 UNIX 风格小型协同工具的构建块。

1.2 send_tty 命令

send_tty 命令与 expect_tty 类似,它将输出发送到屏幕,且该输出无法被 shell 重定向。send_tty 与 expect_tty 具有相同的优缺点。

1.3 工作原理

expect_tty 和 send_tty 通过一个名为 /dev/tty 的特殊文件进行通信。Expect 是少数能够重定向与通过 /dev/tty 通信的程序进行通信的工具之一。当程序由 Expect 启动时,其所有输入(/dev/tty 和未重定向的标准输入)会合并为一个输入,send 命令可以向该输入写入数据;所有输出(/dev/tty 和任何未重定向的标准输出或标准错误)会合并为一个输出,expect 命令可以从该输出读取数据。这使得 Expect 能够像真人一样与进程进行读写操作,只要人类可以控制某个程序,那么 Expect 也可以控制该程序,这就是 Expect 的强大之处。

1.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值