Expect介绍
expect是一个用来实现自动交互功能的软件套件,是基于TCL的脚本编程工具语言。
为什么要使用Expect

安装Expect软件
[root@zh ~]# yum install -y expect
下面利用Expect的功能实现自动交互,发送密码并执行上述ssh命令(由于已经执行过一次ssh了,yes的交互就不会再出现了)
[root@zh ~]# cat test.exp # <==扩展名使用exp代表是Expect脚本 #!/usr/bin/expect # <==脚本开头解释器,和shell类似,表示程序使用Expect解析 spawn ssh root@192.168.1.141 uptime # <==执行ssh命令(注意开头必须要有spawn,否则无法实现交互) expect "*password:" #<==利用Expect获取执行上述ssh命令输出的字符串是否为期待的字符串 *password,这里的*是通配符 send "1\n" #<==当获取到期待的字符串password时,则发送 1 密码给系统,\n为换行 expect eof #<==处理完毕后结束Expect
执行Expect脚本
[root@zh ~]# expect test.exp spawn ssh root@192.168.1.141 uptime root@192.168.1.141's password: #<==这里不需要手动输入密码了 01:19:24 up 43 min, 2 users, load average: 0.00, 0.01, 0.05
spawn 命令
spawn 命令的语法为:
spawn [选项] [需要自动交互的命令或程序]
例如:
spawn ssh root@192.168.1.141 uptime
expect 命令
expect 命令语法
expect 表达式 [动作]
示例如下:
spawn ssh root@192.168.1.141 uptime expect "*password" {send "\r"}
说明
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205273.html原文链接:https://javaforall.net
