expect 交互

expect 是一个交互语言,用来实现自动和交互式任务进行通信,无需人的手工干预
例如密码交互

expect 通过 spawn 启动进程 -》 expect 获取期待关键字 -》 send 向进程发送字符串

下面是一个简单的交互案例
 1 #!/usr/bin/expect -re
 2 set timeout -1 
 3 set USERNAME %(userName)s
 4 set PASSWORD %(password)s
 5 
 6 spawn %(svn_commend)s
 7 
 8 expect {
 9  -re "sername" {exp_send "$USERNAME\r"; exp_continue}
10  -re "yes/no" {exp_send "no\r"; }
11  -re "Password for" {exp_send "$PASSWORD\r"; exp_continue}
12 }
13 expect eof 
14 exit
1. #!/usr/bin/expect -re
告诉操作系统脚本里的代码使用那一个shell来执
-re 表示启用正则表达匹配

2. set timeout -1
设置超时时长 -1 代表永不过期

3. exp_continue
表示循环匹配。匹配到改关键字后继续从头开始匹配。例如安装软件时需要输入多个 yes

4. expect eof
匹配结尾 例如执行命令结束时则可以匹配到 eof

5. exit、interact
exit交互结束退出。 interact表示执行完后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了

6. exp_send/send
都是想程序发送字符串,有啥区别还没找到
7. send_user
send_user 命令用来把后面的参数输出到标准输出中去,默人的send、exp_send 命令都是将参数输出到程序中去的,
8.如何使用
mac 上直接使用 ./XX.sh 执行上述脚本不行。需要使用 expect XX.sh 才能正确执行

9.调试
expect -d XX.sh输出每次执行的过程可以用于编写脚本时调试之用





转载于:https://www.cnblogs.com/jiyihuizhongxing/p/9143678.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值