expect
来源:互联网 发布:c语言字符串最前面是0 编辑:程序博客网 时间:2024/05/29 18:04
1、expect介绍
expect是由Don Libes基于Tcl语言开发的,主要应用于自动化交互操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写载一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率。
2、expect命令
格式:
expect [ -dDinN ] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ] -c:从命令行执行expect脚本,默认expect是交互执行。-d:可以输出调试信息。
expect中相关命令
spawn:启动新的进程send:用于向进程发送字符串expect:从进程接受字符串interact:允许用户交互exp_continue:匹配多个字符串在执行动作后加此命令
3、expect常用语法
单一分支模式语法:
expect "hi" {send "you said hi\n"}
多分子模式语法
expect "hello" {send "you said hello\n"}\"hehe"{send "you said hehe"\n}
等同于
expect {"hello" {send "you said hello\n"}"hehe" {send "you said hehe\n"}}
4、如何使用变量?
set NAME VARLUE
示例:
#!/bin/expect#set ip 192.168.0.1set user rootset passwd 123456 spawn ssh $user@$ipexpect { "yes/no" { send "yes\n" ; exp_continue } "password" { send "$passwd\n" }}interact
5、位置参数
set NAME [lindex $argv #]
示例:
#!/bin/expect#set ip [lindex $argv 0]set user [lindex $argv 1]set password [lindex $argv 2]spawn ssh $user@$ipexpect { "yes/no" { send "yes\n";exp_continue } "password" { send "$password\n" }}interact
6、如何在shell脚本中调用expect
#!/bin/bash#ip=$1user=$2password=$3expect <<eofset timeout 10spawn ssh $user@$ipexpect { "yes/no" { send "yes\n";exp_continue } "password" { send "$password\n" }}expect eofeof
注意:如果没有加选项interact,则expect eof 这个一定要加,与spawn对应表示捕获终端输出信息终止,类似于if….endif
阅读全文
0 0
- Expect
- expect
- expect
- expect
- Expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- expect
- Python 输出JSON对象数组&写入数据到MySQL
- C++中类所占内存空间大小C++中类所占内存空间大小
- Andrew NG 机器学习 练习3-Multiclass Classification and Neural Networks
- 1205:ASCLL码排序
- 树莓派 Samba共享文件
- expect
- 九度[1012]-畅通工程
- 新的开始
- Cloud Native Java-OReilly 2017 读书笔记
- [js高手之路] 我的开源javascript框架gdom
- 简单介绍Java ClassLoader
- tensorflow官网无法访问
- 高二&高一模拟赛12 总结
- 《嵌入式开发探秘》之第二章 开发环境搭建(1)