初识 linux expect

expect是一个用来实现自动交互功能的软件套件 。使用它可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。

expect需要Tcl编程语言的支持,要在系统上运行expect必须首先安装Tcl

expect安装

sudo apt-get install expect

expect 示例:

expect 自动切换root脚本

#!/usr/bin/expect
set timeout 30
spawn su root
expect "password:"
send "123456\r"
interact

以上代码讲解:

[#!/usr/bin/expect]
告诉操作系统脚本中的代码用expect解析。
注意:必须在脚本的第一行 

[set timeout 30]
设置超时时间,单位为秒;默认是10秒

[spawn su root]
spawn  是进入expect环境后才可以执行的expect内部命令。后面跟上要执行的shell命令

[expect "password:"]
expect 也是expect的一个内部命令。用来捕捉spawn的命令执行结果。

[send "123456\r"]
将expect脚本中需要的信息发送给spawn启动的那个进程。等同于手动他输入密码

[interact]
执行完成后保持交互状态,把控制权交给控制台。如果没有这句,那么执行完成之后会退出。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 04:35:13

初识 linux expect的相关文章

初识linux文件管理

初识linux文件管理 1.文件系统与目录结构 文件系统从根目录 下开始,用"/". 以. 开头的文件为隐藏文件,路径分隔用/表示.文件系统的层级结构是LSB(linux standard base),遵循文件系统层级标准(FHS ) 文件命名规则:   文件名最长255个字节,包括路径名在内共4095个字节 蓝色–> 目录 绿色–> 可执行文件 红色–> 压缩文件 浅蓝色–> 链接文件 灰色–> 除了斜杠和NUL, 所有字符都有效,但不推荐使用特殊字符,

《Linux菜鸟入门》初识linux基础

初识linux 一  进入系统 1.用户 普通用户 : student 密码: student 超级用户 : 点击 not listed username :root   password: redhat 在系统中,为了系统的安全性,大部分使用的是普通用户. 2.语言调整 点击屏幕左上 Application  点击 system tools  setting  Region&language 3.系统的基础使用 1>系统登陆 图形登陆方式:即有画面的登陆方式 文本登陆方式:在终端方式下登陆

初识 Linux 文件权限--Linux基础教程

初识 Linux 文件权限--Linux基础教程 在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,权限系统就直接取自于 UNIX 文件权限(甚至使用许多相同的工具). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们

linux expect初识

写个命令,让ssh服务器便捷点 #!/usr/bin/expect set type [lindex $argv 0] if {$type == "server"} { set ip "xxxx" set name "xxxx" set passwd "xxxx" } elseif {$type == "client"} { set ip "xxxx" set name "xx

Linux expect 用法

用法 1. [#!/usr/bin/expect] 这一行告诉操作系统脚本里的代码使用那一个shell来执行.这里的expect其实和Linux下的bash.windows下的cmd是一类东西. 注意:这一行需要在脚本的第一行. 2. [set timeout 30] 基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒.timeout -1 为永不超时,默认情况下,timeout是10秒: 3. [spawn ssh -l username 192.168.1.1] sp

Linux内核分析(三)----初识linux内存管理子系统

Linux内核分析(三) 昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linux的内存管理子系统,linux的内存管理子系统相当的庞大,所以我们今天只是初识,只要对其进行简单的了解就好了,不会去追究代码,但是在后面我们还会对内存管理子系统进行一次深度的分析. 在分析今天的内容之前,我们先来看出自http://bbs.chinaunix.net/thread-2018659-2-1.html的一位大神做的内存管理图,真心佩服大神.其实这张图可以

Linux expect工具简单示例

expect安装命令 yum -y install expect 脚本代码如下: #!/usr/bin/expect set timeout 30 spawn ssh -l username 192.168.1.1 expect "password:" send -- "ispass\r"  //--可加也可不加 interact 脚本文件执行需要使用shell命令 :expect  filename 来执行 命令详细解释 1. #!/usr/bin/expect

linux expect的简单用法及举例

一.expect简介 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而Expect就使用来实现这种功能的工具. Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预.Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect [

expect spawn、linux expect 用法小记

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: 1 #!/usr/bin/expect 2 set timeout 30 3 spawn ssh -l username 192.168.1.1 4 expect "password:" 5 send "ispass\r" 6 interact 1. [#!/usr/bin/expec