shell expect的简介和安装
来源:互联网 发布:古天乐和宣萱 知乎 编辑:程序博客网 时间:2024/05/21 18:35
shell expect 的安装和介绍
为什么需要expect?
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能或者在登录root用户时需要用户交互输入密码。而Expect就使用来实现自动交互的工具。
Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件(Expect [is a] software suite for automating interactive tools)。使用它系统管理员的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 Expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。甚至可以实现实现简单的BBS聊天机器人。 :)
sudo apt-get install expect
expect的简单用法:
下面是一个能用来实现自动执行该命令的Expect脚本:
#!/usr/bin/expect
# Change a login shell to tcsh
set user [lindex $argv 0]
spawn chsh $user
expect "]:"
send "/bin/tcsh "
expect eof
exit
这个简单的脚本可以解释很多Expect程序的特性。和其他脚本一样首行指定用来执行该脚本的命令程序,这里是/usr/bin/expect。程序第一行用来获得脚本的执行参数(其保存在数组$argv中,从0号开始是参数),并将其保存到变量user中。
第二个参数使用Expect的spawn命令来启动脚本和命令的会话,这里启动的是chsh命令,实际上命令是以衍生子进程的方式来运行的。
随后的expect和send命令用来实现交互过程。脚本首先等待输出中出现]:字符串,一旦在输出中出现chsh输出到的特征字符串(一般特征字符串往往是等待输入的最后的提示符的特征信息)。对于其他不匹配的信息则会完全忽略。当脚本得到特征字符串时,expect将发送/bin/tcsh和一个回车符给chsh命令。最后脚本等待命令退出(chsh结束),一旦接收到标识子进程已经结束的eof字符,expect脚本也就退出结束。
- shell expect的简介和安装
- SHELL : expect安装
- shell expect 的介绍
- shell 的expect实践
- Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
- Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
- Linux下expect的安装和使用
- Linux下Tcl和expect 的安装
- linux expect简介及安装
- 安装 Tcl 和 Expect
- expect安装和测试
- Shell 和 Expect 脚本的自动登录运行
- Shell 和 Expect 脚本的自动登录运行
- SHELL-expect、正则表达式和sed的使用
- expect简介和使用例子
- shell expect的简单用法
- shell expect的简单用法
- shell expect的简单用法
- 深入Java核心 Java内存分配原理精讲
- 个人开发android如何赚钱
- CList成员的使用
- 巧妙排除无线路由器的电磁干扰
- 事务:spring事务支持
- shell expect的简介和安装
- 判断QString中是否有汉字
- DTMF的含义
- HDU 4013 图论 树的最小表示
- 如何在Android应用中加入广告
- sencha-touch2.0 mvc中使用grid注意
- Hadoop生态系统(Hadoop Ecosystem)
- ios 进阶 -- Iphone windows 跨平台零配置WiFi通讯
- 五种常见的 php设计模式