博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
expect 自动化控制命令
阅读量:4952 次
发布时间:2019-06-12

本文共 801 字,大约阅读时间需要 2 分钟。

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 30    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

 

参考文档:

转载于:https://www.cnblogs.com/Mrhuangrui/p/4762787.html

你可能感兴趣的文章
C#小练习ⅲ
查看>>
debounce、throttle、requestAnimationFrame
查看>>
linux下的C语言快速学习—进程和文件
查看>>
电源防反接保护电路
查看>>
stm32 堆和栈(stm32 Heap & Stack)
查看>>
SpringMVC从入门到精通之第三章
查看>>
JS基础-dom操作
查看>>
【转】Android详细的对话框AlertDialog.Builder使用方法
查看>>
Unite Beijing 2015大型活动
查看>>
loading加载的代码
查看>>
PHP框架CI CodeIgniter 的log_message开启日志记录方法
查看>>
arraylist
查看>>
关于poi导出excel三种方式HSSFWorkbook,SXSSFWorkbook,csv的总结
查看>>
zoj 1649 Rescue (BFS)(转载)
查看>>
371. Sum of Two Integers java solutions
查看>>
2124: 等差子序列 - BZOJ
查看>>
3529: [Sdoi2014]数表 - BZOJ
查看>>
字符串匹配算法综述
查看>>
Linux centosVMware shell 管道符和作业控制、shell变量、环境变量配置文件
查看>>
在程序被送入后台时,向 iOS 借点时间,来完成一个长期任务
查看>>