shell expect使用方法「建议收藏」

shell expect使用方法「建议收藏」Expect的作者DonLibes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件(Expect[isa]softwaresuiteforautomatinginteractivetools)。使用它系统管理员的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

    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的工作方式象一个通用化的Chat脚本工具。Chat脚本最早用于UUCP网络内,以用来实现计算机之间需要建立连接时进行特定的登录会话的自动化。spawn命令来启动脚本和命令,Chat脚本由一系列expect-send对组成:expect等待输出中输出特定的字符,通常是一个提示符,然后发送特定的响应。

    set timeout设置脚本等Shell返回与expect指定的模式匹配的字符串的时间,如果匹配成功则立即继续执行,如果匹配不到就会阻塞,在超出timeout指定的时间后才继续执行。
timeout默认是10s,如果设置为-1,脚本就要永远等下去。

一个简单的例子,用于自动输入kerberos密码:   

#!/usr/bin/expect
#source /home/rank/.bash_profile
set timeout 10
spawn /usr/bin/kinit can.yu
expect "*OPI.COM*"
send "111111\r"
expect eof

Jetbrains全家桶1年46,售后保障稳定

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234841.html原文链接:https://javaforall.net

(0)
上一篇 2025年5月25日 下午2:43
下一篇 2025年5月25日 下午3:15


相关推荐

  • Hibernate之Query.uniqueResult()结果为数值的注意事项

    Hibernate之Query.uniqueResult()结果为数值的注意事项在日常练习中使用Query.uniqueResult()获取查询总数量,想当然的把返回结果值直接强转成Integer类型,实现运行报错,具体代码如下:控制台错误信息如下:返回值为Long型,使用时需要二次转换,Long->Integer,修改后运行成功,如下所示:

    2022年9月30日
    6
  • ftp 出现Passive mode refused 解决办法

    ftp 出现Passive mode refused 解决办法在 shell 中调用 FTP 出现下面错误时 Permission nbsp denied Passive nbsp mode nbsp refused Permission nbsp denied Passive nbsp mode nbsp refused 请在链接 FTP 后加入 passive 即可 主要原因是 FTP 主动模式造成的 一般 FTP 默认为被动模式 我在做备份是由于防火墙的原因 我把 VSFTP 改为主动模式 这样就发现了一个问题 直接用

    2026年3月8日
    3
  • vue获取当前路由的几种方式

    vue获取当前路由的几种方式vue 路由获取当前路由地址

    2026年3月18日
    1
  • 数据库设计工具的使用(实用)

    数据库设计工具的使用(实用)使用数据库设计工具,以下sql语句全部可以自动生成:/*==============================================================*//*DBMSname:MySQL5.0*//*Createdon:2017/5/270:57:18

    2022年7月11日
    20
  • Shell bash 脚本语法

    Shell bash 脚本语法简单的说,脚本就是使用某种特定的描述性语言,依据一定的格式编写而成的,可在某种特定环境下顺序执行的文本文件。先通过一个最为简单的脚本代码来说明一下脚本编写最小脚本实现(在linuxshell界面新建文件viscript,输入一下代码):#!/bin/bashecho”helloworld!”运行文件./script结果为helloworld!

    2022年7月15日
    20
  • python语言赋值语句_python 赋值语句

    python语言赋值语句_python 赋值语句python 中的语句 赋值语句 if 语句 当条件成立时运行语句块 经常与 else elif 相当于 elseif 配合使用 for 语句 遍列列表 字符串 字典 集合等迭代器 依次处理迭代器中的每个元素 while 语句 当条件为真时 循环运行语句块 try 语句 与 except finally else 配合使用处理在程序运行中出现的异常情况 class 语句 用于定义类型 def 语句 用于定义函数和

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号