一、概述

我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。

Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools)。使用它系统管理员 的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 Expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。甚至可以实现实现简单的BBS聊天机器人。 :)

Expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。Expect需要Tcl编程语言的支持,要在系统上运行Expect必须首先安装Tcl。

二、Expect工作原理

从最简单的层次来说,Expect的工作方式象一个通用化的Chat脚本工具。Chat脚本最早用于UUCP网络内,以用来实现计算机之间需要建立连接时进行特定的登录会话的自动化。

Chat脚本由一系列expect-send对组成:expect等待输出中输出特定的字符,通常是一个提示符,然后发送特定的响应。例如下面的 Chat脚本实现等待标准输出出现Login:字符串,然后发送somebody作为用户名;然后等待Password:提示符,并发出响应

linux expect 读取文件循环,linux expect的使用详解,实例相关推荐

  1. linux解析issue文件,/etc/issue、shutdown命令详解

    一./etc/issue linux字符终端在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息,内容由系统管理员确定.issue选项说明: \d:插入当前日期: \s:插入系统名称: \l: ...

  2. linux服务器上的项目读取本地文件,java访问linux服务器读取文件路径

    java访问linux服务器读取文件路径 内容精选 换一换 通过ADC将文件传输到Host.参见准备环境完成环境配置.以运行用户登录安装Toolkit组件的服务器.执行命令,将A.java文件传输到H ...

  3. Linux C 读取文件夹下所有文件(包括子文件夹)

    Linux C 读取文件夹下所有文件(包括子文件夹) 递归读取某文件夹及其子文件夹下所有文件名 深入探讨:linux中遍历文件夹下的所有文件 Linux C :遍历输出指定目录下的所有文件 Linux ...

  4. java 到服务器上读文件路径,java访问linux服务器读取文件路径

    java访问linux服务器读取文件路径 内容精选 换一换 通过ADC从Host获取文件.参见准备环境完成环境配置.以运行用户登录安装Toolkit组件的服务器.执行命令,从Host获取B.java, ...

  5. linux的八进制文件模式,linux od-输出文件的八进制、十六进制等格式编码的字节...

    博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全 od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符. 常见的文件为文 ...

  6. linux查找权限为755的文件,linux系统文件夹644、755、777权限设置详解

    linux系统文件夹644.755.777权限设置详解 ,左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 而具体的权限是由数字来表示的,读取的权限 ...

  7. linux输出文件没有找到,Linux环境下标准输入、输出、错误信息详解

    Linux环境下标准输入.输出.错误信息详解 下面我们介绍在Linux环境下标准输入.输出.错误设备.标准输入设备代号为0, 用来显示输入信息,标准输出设备代号为1,用来显示正常信息,标准错误设备代号 ...

  8. linux在vi创建文件,Linux下创建文本文件(vi/vim命令使用详解)

    vi test.txt 或者 vim test.txt 再或者 touch test.txt vim是vi的升级版,指令更多,功能更强. 下面是收集的vim用法,当在vim里面要实现退出,首先要做的是 ...

  9. Linux下zip格式文件的解压缩与压缩操作命令详解

    < Linux下zip格式文件的解压缩与压缩操作命令详解 > * 声明:网上找来比较凌乱,整理了一下,方便自己查看 zip格式文件的解压缩与压缩操作: 1.把/home目录下面的huaza ...

最新文章

  1. ignite在MacOS或Linux上的安装
  2. 3157 Java vs C++模拟
  3. 弄清 CSS3 的 transition 和 animation
  4. [转]ES7、ES8、ES9、ES10新特性大盘点
  5. c++——对象的构造和析构函数、构造函数的分类及调用
  6. MySQL配置文件简单解析
  7. @Python 程序员,如何最大化提升编码效率?
  8. 如何使用 Pages 在 iPhone、iPad 或 Mac 上插入和编辑表格?
  9. Linux内核文件系统7
  10. Unity自定义Script模板
  11. C++经典编程题目(九)玩火柴棍游戏
  12. 微信小程序模仿拼多多APP地址选择样式
  13. 数据库date日期转String类型
  14. 华为鸿蒙系统什么时候出手机,华为鸿蒙系统什么时候出 是否用于手机还未确定...
  15. Linux上安装和使用git到gitoschina和github上_亲测
  16. CentOS-7.2部署DNS域名解析服务器并进行相关配置测试
  17. 区块链开发者观点:来自 MYKEY 的胖哥 Ricky
  18. Java的jar包打包成exe应用
  19. 数字货币搬砖之路(第一次踩坑)
  20. 错误: 找不到或无法加载主类 iamdev.me.ytds.YTDSApplication

热门文章

  1. oracle核销预付账款,采购、接收、应付会计分录和功能认识
  2. 2048游戏python源代码_Python2048游戏的实现
  3. 为何说婚姻不是女人的全部--蝉思读书社给我的诸多感悟
  4. 用python进行按掩膜提取的批量操作
  5. 滑触线样本pdf_AMCAT样本论文Pdf下载
  6. 逻辑与在java中是一真即真_第14天:逻辑运算符、if、for语句
  7. 不定方程(什么是不定方程)
  8. LabVIEW控制Arduino采集多路DS18B20温度数值(进阶篇—3)
  9. 建筑施工网络优化名词解释,网络规划与优化技术
  10. 运维java项目的技巧 (war包、jar包、docker环境)