交互式转化批处理工具 expect

expect中相关命令

  • spawn 启动新的进程
  • expect 从进程接收字符串
  • send 用于向进程发送字符串
  • interact 允许用户交互
  • exp_continue 匹配多个字符串在执行动作后加此命令

例一

#!/usr/bin/expect
spawn scp /tmp/123.txt umpay@192.168.10.200:/tmp
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "password\n"}
}
expect eof
[umpay@localhost ~]$ ./a.exp

例二

#!/usr/bin/expect
spawn ssh 1192.168.10.200
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "password\n"}
}
interact

例三 expect变量

#!/usr/bin/expect
set ip 1192.168.10.200
set user umpay
set password password
set timeout 10
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$password\n"}
}
interact

例四 expect位置参数

#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "password\n"}
}
interact
[umpay@localhost ~]$ ./d.exp 1192.168.10.200 umpay password

例五 expect 执行多个命令

#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set timeout 20
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$password\n"}
}
expect "]#" {send "echo 'root1'\n"}
expect "]#" {send "echo 'root2'\n"}
send "exit\n"
expect eof

例六 shell脚本调用expect

#!/bin/bash
ip=$1
user=$2
password=$3
expect <<EOF
set timeout 20
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$password\n"}
}
expect "]#" {send "echo 'ssh root1'\n"}
expect "]#" {send "echo 'ssh root2'\n"}
expect "]#" {send "exit\n"}
expect eof
EOF

交互式转化批处理工具 expect的更多相关文章

  1. Linux-交互式转化批处理工具expect

    expect 是由Don Libes基于 Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式 操作的场景,借助 expect 处理交互的命令,可以将交互过程如: ...

  2. linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本

    linux自动交互工具expect,tcl安装,以及自动互信脚本 工作中需要对几十台服务器做自动互信,无意中发现expect命令,研究一番. 在网上找了许多资料也没有安装成功,摸索着总算成功了.现分享 ...

  3. 数据库bcp导入导出批处理工具

    应公司策划要求,需要一个数据库按表导入导出的工具配合svn来进行差异匹配,方便策划每天对数据库修改的记录工具,我使用bcp命令实现如下批处理工具,中间踩了不少坑,现保存在这边希望可以帮到需要此工具的同 ...

  4. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

  5. Unity编辑器 - 资源批处理工具基类

    Unity编辑器 - 资源批处理工具基类 经常要对资源进行批处理,很多时候都是一次性的需求,于是弄个通用脚本. 工具是个弹出面板,处理过程有进度条,如下: 如图,子类只需要重写几个方法: using ...

  6. Linux批量部署工具Expect

    既然没有遇到过,做好准备总是好的.这是自己送给自己的话,现在运维做自动话越来越多,自己就学以下,记录笔记.目前主流的有puppet.Expect.pssh等等,今天就用Expect做自动部署和日常管理 ...

  7. Linux自动化命令工具expect

    expect是Unix系统中用来进行自动化控制和测试的软件工具,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等. 用法 Linux中我们经常写脚本处 ...

  8. Axure RP for Mac(网站交互式原型设计工具)破解版安装

    1.软件简介    Axure RP 是 macOS 系统上一款最知名和最强大的原型设计工具,增加了大量新的特性,如应用多个动画,并同一时间运行一个小部件,如褪色,同时移动等,而且具有全新的图标和界面 ...

  9. 用Python写一个将Python2代码转换成Python3代码的批处理工具

    之前写过一篇如何在windows操作系统上给.py文件添加一个快速处理的右键功能的文章:<一键将Python2代码自动转化为Python3>,作用就是为了将Python2的文件升级转换成P ...

  10. LSMW批处理工具操作手册

          目录     1. 创建PROJECT 1 2.第一步:初始界面后点击执行出现如下对话框 3 3.第二步:维护源结构 8 4.第三步:Maintain Source Fields 9 4. ...

随机推荐

  1. [FAQ] 阿里云一口价域名购买之后在哪里看

    进入控制台,产品和服务中找到"域名",进去后在左侧菜单有 "已买到的域名". 如图: Link:https://www.cnblogs.com/farwish/ ...

  2. win10 uwp 笔迹书写预测 墨迹书写加速

    在 UWP 的 InkCanvas 里自带了预测书写轨迹的功能,开启此功能可以进行书写预测,从而减少书写延迟.本文将告诉大家如何在 UWP 的 InkCanvas 里开启笔迹书写预测功能 在 UWP ...

  3. dotnet 部署 github 的 Action 进行持续集成

    被微软收购的 GitHub 现在十分土豪,提供了免费的服务器给咱构建.刚好微软对 dotnet 的支持是特别好的,毕竟还算半个自家的东西,大概只需要 3 分钟就可以在 github 上通过 Actio ...

  4. 通过虚拟机镜像部署zabbix

    前言 由于基础镜像的缘故,zabbix部署过程中很可能出现各种缺少依赖包的情况,如果环境中又无法连接互联网,系统部署会非常麻烦.为此zabbix官方提供了虚拟机镜像,导入后可以直接在平台上拉起虚拟机, ...

  5. Dinky实时计算平台

    前言:Apache Flink 作为新一代的实时计算框架已经被应用到各个行业与领域,其岂存在着应用的痛点比如 FlinkSQL 在线IDE.作业提交不友好.作业无监控报警等.很大程度上说,FlinkS ...

  6. 羽夏闲谈——TeeWorlds 中文问题

      不久前 削微寒 园友发布了一篇博文 误入 GitHub 游戏区,意外地收获颇丰 ,看到了一个游戏 TeeWorlds .有一说一挺好玩的,下面是那个博客的原图:   官方的下载连接:https:/ ...

  7. ansible系列(32)--ansible实战之部署WEB集群架构(2)

    1. 基础环境role编写 创建基础环境role的相关目录: [root@xuzhichao cluster-roles]# mkdir base-module/{tasks,handlers,fil ...

  8. leaflet常用插件汇总介绍

    1.Leaflet Ant Path(线条流动效果) 在交通项目.管网应用的项目中,常常需要标注出道路的走向.河流的流向或者管线的流向等等,Leaflet Ant Path能够很好的解决这类问题: g ...

  9. 简单聊一聊Java的历史

    Java这门语言有很多不可忽视的优点,比如一次编写到处运行,又比如它有一个相对安全的内存管理和访问机制,避免了C++中经常出现的内存泄露和指针越界问题等等,java带来的这些好处,让我们这些java程 ...

  10. Seata原理浅析

    前言 Seata是阿里开源的分布式事务解决方案,本文将详细介绍 Seata 的事务模式.原理以及使用.了解之前需清楚什么是分布式事务. 一.什么是 Seata Seata 是一款开源的分布式事务解决方 ...