expect 命令脚本语言实战

一.expect 实现自动填入密码

1.vi ssh.exp.201

#!/usr/bin/expect

spawn ssh -p 20000 [email protected] /sbin/ifconfig eth0
set timeout 60
expect "*password:"
send "abcdef\n"
expect eof
exit

2.chmod 700 ssh.exp.201  #注。要是没有权限执行,也可以直接expect,700权限。防止其它用户查看脚本中的密码

3.执行效果:

./ssh.exp.201  
spawn ssh -p 20000 [email protected] /sbin/ifconfig eth0
[email protected]‘s password:
eth0      Link encap:Ethernet  HWaddr 00:0C:29:31:2B:A0  
          inet addr:192.168.1.201  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2417 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2419 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:229270 (223.8 KiB)  TX bytes:186485 (182.1 KiB)

二.expect语法:

exp_continue 的原理,当要提示输入时,进行匹配,当匹配成功,重新进入expect,有点象for 循环中的continue,要是没有exp_continue的话,则expect中的内容,只会对一次输入匹配一次,不论你有几个关键字

论证:

#!/usr/bin/expect

spawn ssh -p 20000 [email protected] /sbin/ifconfig eth0
set timeout 60
expect {
  -timeout 60
  "yes/no"      {exp_send "yes\r"; exp_continue}
  "*password:"  {exp_send "abcdef\r"}
  timeout {puts "expect was time out "; return}
}

expect eof
exit

时间: 2024-10-14 19:08:19

expect 命令脚本语言实战的相关文章

自动化运维脚本语言之expect实践学习(1)

一.expect简介 expect是一种简单的基于Tcl的脚本语言工具,一个可实现自动交互功能的软件套件,其功能就是进行自动化的人机交互:也能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序,根据脚本内容expect可以知道程序会提示或反馈什么内容以及什么是正确的应答:它是一种可以提供"分支和嵌套结构"来引导程序流程的解释型脚本语言. shell功能虽然强大,但是不能实现有交互功能的多机器之间的操作例如ssh和ftp,而expect可以帮助我们来实现. 主

linux 脚本之 expect命令使用

1 概述 expect 是由Don Libes基于Tcl(Tool Command Language )语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成.尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率 2 语法 expect命令 expect 语法: expect [选项] [ -c cmds] [ [ -[f|b] ] cmdfile] [ args] 选项

实现真正的自动化,expect脚本语言使用

实现真正的自动化,expect脚本语言使用 expect中的几个重要句子: expect的核心是spawn expect send set spawn 调用要执行的命令 expect 等待命令提示信息的出现,也就是捕捉用户输入的提示: send 发送需要交互的值,替代了用户手动输入内容 set 设置变量值 interact 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了.如果没有这一句登录完成后会退出,而不是留在远程终端上. expect eof 这个一定要加,与spawn

expect实现远程主机自动执行命令脚本

2014年第一个脚本,哈哈!!! expect实现远程主机自动执行命令脚本: #!/usr/bin/expect -- if { [llength $argv] < 4 } { puts "Usage: $argv0 ip user passwd port commands timeout" exit 1 } match_max 600000 set ip [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex

FPGA开发中的脚本语言

多数FPGA开发者都习惯图形化界面(GUI).GUI方式简单易学,为小项目提供了一键式流程.然而,随着FPGA项目越来越复杂,在很多情况下GUI工具就阻碍了工作效率.因为GUI工具不能对整个开发过程提供足够的灵活性和控制.另一方,GUI工具本身会占用很大一部CPU资源和内存. 脚本语言的选择 在IC和FPGA的最常用的是TCL,Perl以及Shell.除此之外,还有可能用到其他的脚本语言.比如,Xilinx工具脚本语言还有Ruby和Python. TCL 顾名思义,Tool Command La

java脚本语言学习心得

第一篇技术博客,一定要认真! 第一篇技术博客,一定要认真! 第一篇技术博客,一定要认真! 好了,进入正题: 一 什么是脚本语言? 程序的运行方式有两种:编译运行和解释运行 1.1 前者的典型代表是java, 从文件角度看分为三步: write[编写]: a.java文件(拿个记事本就能写,扩展名是.java), compile[编译]: 编译(cmd命令是java a.java,ide集成了编译器运行之前自动编译)之后产生了a.class文件(是一堆二进制码,人看不懂,是给虚拟机看的) 运行[r

shell、cmd、dos和脚本语言区别和联系

问题一:DOS与windows中cmd区别   在windows系统中,"开始-运行-cmd"可以打开"cmd.exe",进行命令行操作. 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径.在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell.这算是cmd与dos的最大区别,一个只是接口.

编译性语言、解释性语言和脚本语言

1.计算机不能直接理解高级语言,只能理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.(计算机只能执行机器语言:我们要执行高级语言编的代码,就只能用编译器把它变成机器语言) 2.翻译有两种方式:a.编译b.解释.两种方式主要是翻译的时间不同 3.编译语言:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成机器语言文件:比如,exe文件,以后运行的话就不用重新编译了,直接使用编译的结果就行了:因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序

简单理解一下什么是脚本语言

脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看.编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行.因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些.各种动态语言,如ASP.PHP.CGI.JSP等,都是脚本语言. 2.脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等.脚本程序相对一