千家信息网

expect免交互脚本编程

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、大纲1.Expect概述2.Expect安装(底层语言Tcl)3.Expect基本命令4.Expect执行方式5.Expect案例一、Expect概述1.Expect是建立在tcl语言基础上的一个
千家信息网最后更新 2025年12月02日expect免交互脚本编程

一、大纲

1.Expect概述
2.Expect安装(底层语言Tcl)
3.Expect基本命令
4.Expect执行方式
5.Expect案例

一、Expect概述

1.Expect是建立在tcl语言基础上的一个工具,Expect是用来进行自动化控制和测试的工具。主要解决shell脚本中不可交互的问题。对于大规模的linux运维很有帮助。
2.在linux运维和开发中,我们经常需要远程登录服务器进行操作,登录的过程是一个交互的过程,可能会余姚输入yes/no password等信息。为了模拟这种输入,可以使用Expect脚本。

二、Expect安装

1.挂载光盘
2.制作本地YUM源
执行安装命令:yum -y intall expect

三、基本命令

1.send
向进程发送字符串,用于模拟用户的输入
该命令不能自动回车换行,一般要加\r(回车)
2.expect
expect的一个内部命令判断上次输出结果里是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回
只能捕捉由spawn启动的进程的输出
3.spawn
启动进程,并跟踪后续交互信息
4.interact
执行完成后保持交互状态,把控制权交给控制台
5.Timeout
指定超时时间,过期则继续执行expect脚本后续指令
单位是:秒
timeout -1为永不超时
默认情况下,timeout是10秒
6.exp_continue
允许expect继续向下执行指令
7.send_user
回显命令,相当于echo
8.$argv参数数组
Expect脚本可以接受从bash传递的参数,可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数
TIP
Expect脚本必须以interact或expect ecof结束,执行自动化任务通常expect eof就够了
expect eof实在等待结束标志。由spawn启动的命令在结束时会产生一个eof标记,expect eof即在等待这个标记

四、Expect执行方式:

直接执行

五、案例

远程登录

嵌入执行

登录远程控制后自动退出

TIP
这里解释一下"<<"的用法:
​ 当shell看到"<<"的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。
"EOF"与"-EOF"两种分界符的不同:
​ "EOF"没有容错率,一旦结尾的分界符存在空格或者制表符,就会导致脚本报错。
​ "-EOF"有一定的容错率,结尾的分界符可以允许存在制表符,空格不行

创建用户tom,密码tom123
第一种方法:

第二种方法:
![]

SSH远程登录代码健壮版

脚本 命令 登录 控制 输入 参数 字符 字符串 进程 信息 制表符 工具 指令 方式 方法 时间 标记 案例 用户 空格 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金蝶kis数据库补丁 全省学生网络安全答题活动 丹阳兰瑞网络技术有限公司 杭州煎饼网络技术有限公司网址 怀化软件开发培训机构 ie代理服务器自动被修改 深泽县网络安全培训 2021中国网络安全技术年会 发货控制器软件开发的目的 软件开发模型优缺点 计算机网络技术综合实验 网络技术选型的要求 iv网络安全事件 我的世界打怪升级的服务器手机版 刺猬猫服务器维护一般多久 深圳拼团软件开发欢迎咨询 网络安全主题团日班会活动策划 总部基地软件开发电话多少 通城微时代互联网网络科技 卧底软件开发需要什么样的人 网络安全问题的不良影响 河南定制软件开发哪家好 魔兽8.0转服务器 吉林服务器机柜销售公司 rac 启动数据库 长宁区网络软件开发机构整顿 三级网络技术交换机配置 股市软件开发公司 firebase数据库技术 四川手机软件开发技术
0