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

最新文章

  1. Java上面出现这个错误如何解决关于XML的
  2. [译]学习IPython进行交互式计算和数据可视化(五)
  3. 如何编写可维护的面向对象JavaScript代码
  4. 讲解JS的promise,这篇是专业认真的!
  5. python selenium自动化(二)自动化注册流程
  6. Atom编辑器入门到精通(四) Atom使用进阶
  7. 对JDBC的优化,BeanUtils和DBUtils
  8. vim与sublime,程序员的屠龙刀和倚天剑
  9. 学习SVG 重点汇总
  10. ●POJ 1269 Intersecting Lines
  11. 一个小实例理解js 原型和继承
  12. 通用类 对象Excel互转
  13. new Date().getTime()和System.currentTimeMillis()的区别
  14. tkinter之grid布局管理器详解
  15. MySQL8.0关于caching_sha2_password Plugin的一个Bug
  16. 结对项目3-功能增强型带基本函数计算java计算器
  17. 【Vijos】lxhgww的奇思妙想(长链剖分)
  18. Golang查缺补漏(一)
  19. eclipse alt+/智能提示错误问题
  20. 邮件服务器hMailServer管理工具hMailServer Administrator汉化(转)

热门文章

  1. 中国科学技术大学统一身份认证系统CAS
  2. 注入技术--LSP劫持注入
  3. 【Python3练习题 025】 一个数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
  4. vue 动态插入组件
  5. 一个简单jpa例子
  6. java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决
  7. Entity Framework 6 自定义连接字符串ConnectionString连接MySQL
  8. Java线程的5种状态及切换(透彻讲解)-京东面试
  9. Java语言支持的3种变量类型
  10. Delphi窗体之间互相调用的简单问题