目录
5.1 expect 命令可以实现自动登录远程服务器,适应指定登录某一台
command< ............ ............ ............ EOF (结束格式) (EOF根据自己的喜好定义,只要不定义特殊字符之类的都可,结束标语要顶格写,前方不可以有空格,后方也不可有空格,否者无法结束输出。) ①通过脚本直接输出变量值 #!/usr/bin/expect 和之前写脚本写的#!/bin/bash 解释器不一样 expect 接收命令执行后的输出,然后和期望字符串匹配,若匹配成功则执行相应的,send 向进程发送字符串,用于模拟用户的输入。Send 发送的命令不能自动回车换行,一般 要加\r(回车)。 (1)spawn spawn 后面跟一个命令,表示开启一个会话,启动一个进程,并跟踪后续交互信息。 (2)结束语 expect eof :等待执行结束,如果没有这句话可能会导致命令还没执行,脚本就结束了。 (3)set
(4)exp_continue exp_continue 表示允许 expect 继续向下执行指令 (5)send_user send_user 表示回显命令,相当于 echo (6)$xagv expect 脚本可以从bash传递参数,使用[lindex $argv n]获得。其中 n 从 0 开始。 (7)interact 执行完之后保持交互状态,如果不加这一项。交互完成会自动退出 语法结构: } ######## 加入匹配到了123,执行完之后继续向下匹配 主机centos7 64 主机名改为10,其IP为192.168.159.10 主机centos 7.6-1 主机名改为68,其ip地址为192.168.159.68 脚本: 验证: ①执行脚本 ②查看脚本内容 学习了Here Document 免交互方式和expect 免交互方式,ssh在进行远程登陆时可以做到免密登录。
3、实现方式
3.1 通过 read 命令接收输入并打印

3.2通过passwd给zhangsan用户设置密码

3.3通过cat直接像文本中注入内容

二、 expect 免交互
1、概念
2、安装expect

3、基本命令介绍
3.1脚本解释器
3.2 执行方法
4、expect 语法
4.1单支结构
4.2多分支结构
5、实验案例
5.1 expect 命令可以实现自动登录远程服务器,适应指定登录某一台




5.2 将上面的脚本进行优化,可以登录任何主机


总结