expect 自动化控制命令
2024-09-29 11:05:01
expect 的核心是 spawn expect send set
spawn 调用要执行的命令
expect 等待命令提示信息的出现,也就是捕捉用户输入的提示:
send 发送需要交互的值,替代了用户手动输入内容
set 设置变量值
interact 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。
expect eof 这个一定要加,与 spawn 对应表示捕获终端输出信息终止,类似于 if....endif
expect 脚本必须以 interact 或 expect eof 结束,执行自动化任务通常 expect eof 就够了。
设置 expect 永不超时
set timeout -1
设置 expect 300 秒超时,如果超过 300 没有 expect 内容出现,则退出
set timeout 300
例子: 自动登录远程服务器执行ifconfig命令
#!/bin/bash
passwd='Hello2014'
/usr/bin/expect <<-EOF
set time
spawn ssh root@192.168.126.131
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$passwd\r" }
}
expect "*#"
send "ifconfig\r"
expect "*#"
send "exit\r"
interact
expect eof
EOF
Code
参考文档:http://blog.slogra.com/post-601.html
最新文章
- Java上面出现这个错误如何解决关于XML的
- [译]学习IPython进行交互式计算和数据可视化(五)
- 如何编写可维护的面向对象JavaScript代码
- 讲解JS的promise,这篇是专业认真的!
- python selenium自动化(二)自动化注册流程
- Atom编辑器入门到精通(四) Atom使用进阶
- 对JDBC的优化,BeanUtils和DBUtils
- vim与sublime,程序员的屠龙刀和倚天剑
- 学习SVG 重点汇总
- ●POJ 1269 Intersecting Lines
- 一个小实例理解js 原型和继承
- 通用类 对象Excel互转
- new Date().getTime()和System.currentTimeMillis()的区别
- tkinter之grid布局管理器详解
- MySQL8.0关于caching_sha2_password Plugin的一个Bug
- 结对项目3-功能增强型带基本函数计算java计算器
- 【Vijos】lxhgww的奇思妙想(长链剖分)
- Golang查缺补漏(一)
- eclipse alt+/智能提示错误问题
- 邮件服务器hMailServer管理工具hMailServer Administrator汉化(转)
热门文章
- 中国科学技术大学统一身份认证系统CAS
- 注入技术--LSP劫持注入
- 【Python3练习题 025】 一个数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
- vue 动态插入组件
- 一个简单jpa例子
- java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决
- Entity Framework 6 自定义连接字符串ConnectionString连接MySQL
- Java线程的5种状态及切换(透彻讲解)-京东面试
- Java语言支持的3种变量类型
- Delphi窗体之间互相调用的简单问题