linux中shell中使用expect实现自动应答

2023-11-02

linux中shell中使用expect实现自动应答

expect有两种方式,一种是为了单纯的进行自动应答,还有一种是为了结合shell脚本,大多数情况下都是为了结合shell脚本,这里示例两种写法,但在使用时应该尽量使用结合shell方式

expect主要命令的功能

spawn       启动新进程、运行一个命令
expect      用于接收返回的字符串
send        用于发送输入的字符串
set timeout     时间; 设置超时时长,默认是秒
exp_continue    多次匹配,后续未结束
exit            退出expect脚本
\r              回车确认

实例

自动应答ssh登录

#!/usr/bin/expect
spawn ssh root@192.168.10.28
# 捕获相关内容
expect {
        "(yes/no)?" { send "yes\r";exp_continue }
        "password:" { send "root\r" }
}

结合shell脚本方式实现自动应答登录,然后执行任务

#!/bin/bash
expect << EOF
spawn ssh root@192.168.10.28
# 捕获相关内容
expect {
        "(yes/no)?" { send "yes\r";exp_continue }
        "password:" { send "123456\r" }
}
expect EOF
echo "login success"

挂载网络磁盘,自动应答账号密码

#!/usr/bin/expect
#这个脚本用来自动挂载webdev,自动输入账号密码
#使用时请修改地址和账号密码

expect
spawn mount -t davfs http://192.168.10.28/dav /mnt

expect {
    "Username:" { send "admin\r"; exp_continue }
    "Password:" { send "123456\r" }
}
interact

结合shell脚本方式,可以继续执行后面的脚本

#!/bin/bash
#这个脚本用来自动挂载webdev,自动输入账号密码
#使用时请修改地址和账号密码

expect << EOF
spawn mount -t davfs http://12.12.12.12/dav /mnt

expect {
    "Username:" { send "admin\r"; exp_continue }
    "Password:" { send "123456\r" }
}
expect EOF

#可以继续执行shell脚本部分
echo "mount success"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux中shell中使用expect实现自动应答 的相关文章

随机推荐

  • Typec协议之PD通信消息详解一

    Messages 消息由消息头和可变长度 包括零 数据部分组成 消息 头 数据 格式如下图 1 只包含头消息 其它为PHY Layer 2 包含消息头和数据消息 3 包含消息头和数据消息 和扩展的消息 Message Header 从表中可
  • 学习笔记--Verilog HDL高级数字设计--第六章组合逻辑与时序逻辑的综合

    组合逻辑与时序逻辑的综合 综合引擎能够自动完成一组布尔函数的最简化 并将结果映射成能满足设计目标的硬件实现 转换 优化 映射 本章将介绍如何编写易于综合的Verilog模型 综合工具完成的工作 1 检测并消除冗余项 2 查找组合反馈环路 3
  • 模糊c均值聚类_模式识别:K均值算法&模糊c均值算法的应用

    1 背景介绍 在实际应用场景中我们会遇见很多无监督分类的任务 样本不具有类别标注 我们无法通过有监督学习设计分类器 基于样本间相似性度量的聚类方法是无监督学习的重要组成部分 一般来说 聚类准则是根据样本之间的距离或相似程度来定义的 通常将相
  • mysql死锁问题分析

    线上某服务时不时报出如下异常 大约一天二十多次 Deadlock found when trying to get lock Oh My God 是死锁问题 尽管报错不多 对性能目前看来也无太大影响 但还是需要解决 保不齐哪天成为性能瓶颈
  • EDK2编译记录

    EDK2 EDK2 PLATFORM EDK2 NON OSI 以上三个仓库 EDK2是主仓库 EDK2 PLATFORM是和EDK2版本对应的板子和CPU相关的仓库 比如树莓派的就在这个里面 EDK2 NON OSI是有一些license
  • 表的读写分离的优缺点?

    读写分离是一种常见的数据库优化策略 将数据库的读操作和写操作分别分配给不同的数据库实例处理 以下是读写分离的优缺点 优点 提升读取性能 通过将读操作分发到专用的读库 可以减轻主库的读取压力 提升整体的读取性能 横向扩展能力 读写分离方案为系
  • Mesa学习笔记#1:Running MESA

    Mesa学习笔记 1 Running MESA Running MESA 关于如何使用MESA来演化一颗恒星 MESA DIR 目录有许多子目录 这些子目录中的大多数都是模块 MESA中的 M 它们提供一些特定的功能 例如 kap 提供计算
  • 最近很火的微信啪一啪猜猜是怎样通过Flutter实现的?

    作者 CrazyQ1 链接 https juejin im post 5eeb49a1e51d4573c91b91ab 最近这个啪一啪效果挺火的啊 群里经常有人啪 介绍 其实之前我就双击过头像 但并没任何效果 估计是当时把这个啪一啪消息隐藏
  • QThread的信号与槽用法详解

    QThread的信号与槽用法主要涉及以下几个方面 QThread的finished 信号 当QThread执行完毕时 会发出finished 信号 我们可以通过连接该信号到槽函数的方式 实现在QThread执行完毕后进行一些操作 例如 cl
  • 公司组网网络解决方案和企业常用的组网技术有哪些?

    随着企业信息化的发展 依赖互联网 云服务等协作办公的需求越来越多 组建一个高效适用的企业网络 对于提高企业办公效率 促进企业发展显得至关重要 企业组网的方式主要有 MPLS专线 VPN以及SD WAN等 至于哪一种才是好的解决方案 网宿君认
  • vue el-dialog嵌入video实现视频播放功能

    video嵌入dialog实现视频播放 业务需求 1 实现的效果图 3 全部代码 复制粘贴即可实现 业务需求 弹窗实现视频播放 并且切换不同选项卡播放不同视频 1 实现的效果图 3 全部代码 复制粘贴即可实现
  • springboot内置序列化工具Jackson

    JackSon介绍 本文使用的JackSon版本为2 9 6 JackSon是解析JSON和XML的一个框架 优点是简单易用 性能较高 JackSon处理JSON的方式 JackSon提供了三种JSON的处理方式 分别是数据绑定 树模型 流
  • J-Link识别到驱动但是识别不到芯片CODE和上电亮红灯的原因和解决方法

    今天在来分享一下自己在使用J Link时候遇到的一个问题以及我自己的解决方法 今天在用J Link烧录时候突然发现J link连接到开发板时候会先闪几下红灯 然后J link驱动是可以找到的 但是通过Keil查看J link是否识别到要烧录
  • Linux 中的 chage 命令及示例

    chage命令用于查看和更改用户密码过期信息 当要为用户提供有限时间的登录或需要不时更改登录密码时 使用此命令 借助该命令 我们可以查看账户的时效信息 上次更改密码的日期 设置密码更改时间 一定时间后锁定账户等 chage 命令的语法如下
  • 网络层拥塞控制与传输层TCP拥塞控制的区别

    近期学习计算机网络的过程中 发现网络层与传输层都有对拥塞控制的实现 为什么网络层和传输层都有拥塞控制呢 其实 网络层拥塞控制和传输层拥塞控制的目的是相同的 都是为了防止过多的数据进入网络 保证整个网络中不出现过量分组而引起网络的性能下降 那
  • 目标检测从入门到精通—概述(一)

    你有梦想 就去实现它 目录 你有梦想 就去实现它 1 计算机视觉 CV Computer Vision 领域任务是什么 图像分类 目标检测 分割是计算机视觉领域的三大任务 一是分类 Classification 二是检测 Detection
  • kubernetes环境搭建及部署

    一 kubernetes 概述 1 kubernetes 基本介绍 kubernetes 简称 K8s 是用 8 代替 8 个字符 ubernete 而成的缩写 是一个开源 的 用于管理云平台中多个主机上的容器化的应用 Kubernetes
  • 【排序算法】快速排序的分析改进

    基本的快速排序 最基本的快速排序是由C A R Hoare在1960年提出的 快速排序的算法是一种分治排序算法 它将数组划分为两个部分 然后分别对两个部分进行排序 快速每次对数组重新排序 选择一个基准值key 然后让数组满足下面的两个个条件
  • TensorFlow:实战Google深度学习框架(六)图像数据处理

    第七章 图像数据处理 7 1 TFRecord输入数据格式 TensorFlow提供了一种统一的格式来存储数据 TFRecord格式 7 1 1 TFRecord格式介绍 7 1 2 TFRecord样例程序 7 2 图像数据处理 7 2
  • linux中shell中使用expect实现自动应答

    linux中shell中使用expect实现自动应答 expect有两种方式 一种是为了单纯的进行自动应答 还有一种是为了结合shell脚本 大多数情况下都是为了结合shell脚本 这里示例两种写法 但在使用时应该尽量使用结合shell方式