exp命令linux ex linux

linux系统中oracle数据库exp命令提示错误-bash: exp: command not found

oracle安装不全,这个命令在:/opt/oracle/product/10.2.0/db_1/bin目录下,确认一下exp文件是否存在。

创新互联公司成都企业网站建设服务,提供网站设计制作、网站制作网站开发,网站定制,建网站,网站搭建,网站设计,响应式网站开发,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:18982081108

概述

简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix兼容产品。

Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有 Unix操作系统的全部功能,因而开始了Linux雏形的设计。

绝大多数基于Linux内核的的操作系统使用了大量的GNU软件,包括了shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正因为如此,GNU计划的开创者理查德·马修·斯托曼博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途,同时它们都尽可能被编写得更好。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

Linux操作系统中expect如何使用?

在Linux系统中,expect是一个自动化交互套件,也是一个用来处理交互的命令;利用expect,我们可以将交互过程写在一个脚本上,让其自动化完成,从而帮助运维人员提高工作效率、节约时间。那么Linux系统中expect该如何使用?我们来看看详细的内容介绍。

Linux系统中expect该如何使用?

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。

expect自动交互流程:

spawn启动指定进程--expect获取指定关键字--send向指定程序发送指定字符--执行完成退出。

注意:该脚本能够执行的前提条件是安装了expect

yum install -y expect

expect常用命令总结:

spawn 交互程序开始后面跟命令或者指定程序;

expect 获取匹配信息匹配成功则执行expect后面的程序动作;

send exp_send 用于发送指定的字符串信息;

exp_continue 在expect中多次匹配就需要用到;

exit 退出expect脚本;

eof expect 执行结束 退出;

set 定义变量;

puts 输出变量;

set timeout 设置超时时间。

Linux expect

expect:expect是Unix系统中用来进行自动化控制和测试的脚本工具,常用于实现交互式任务的自动化。使用命令”dnf install expect -y”进行安装。脚本文件声明为”#!/usr/bin/expect”。

expect常用命令如下:

1.spawn+交互命令(如spawn ssh root@192.168.1.1):”spawn”是expect的初始命令,用于启动一个新的交互进程,之后所有的操作都会在这个进程中进行。

2.set:定义变量/为变量赋值。使用语法:set 变量名 值。

3.puts:将变量值/字符串定向到本地标准输出文件(即定位到屏幕)。使用语法:puts “字符串/$变量名”

4.send_user:作用和使用方法类似于”puts”,区别在于”puts”会在输出内容的结尾自动追加一个换行符,而”send_user”不会。

5.send:向交互进程发送信息/命令(字符串和一些特殊符号,\r—回车,\n—换行,\t—制表符)。使用语法:send “信息/命令[\r]”。

6.[lindex $argv 数字]:表示外部传递参数的值,数字是n,就表示第n-1个参数。注:$argc表示外部传递参数的个数,也是一个值。

7.expect+字符串+{ 命令 }:将字符串与交换进程接收到的信息进行匹配。如果匹配成功(字符串是交换进程接收到的信息的一部分),执行包含在”{}”中的命令;如果匹配失败,不执行包含在”{}”中的命令。该命令有三种使用方法:

第一种:单分支模式

①expect 字符串 { 命令 }

解释:如果字符串与交换进程接收到的信息匹配成功,执行包含在”{}”中的命令,并结束该expect命令;如果字符串与交换进程接收到的信息匹配失败,timeout秒后结束该expect命令。(注:脚本执行到expect命令时,计时器就开始计时,并会在计时器超时前不断对交换进程接收到的信息进行扫描,尝试字符串与信息的匹配。)

②expect {

字符串{ 命令 }

timeout { 命令 }

}

解释:如果字符串与交换进程接收到的信息匹配成功,执行包含在”{}”中的命令,并结束该expect命令;如果字符串与交换进程接收到的信息匹配失败,timeout秒后执行包含在”{}”中的命令,之后结束该expect命令。(注:脚本执行到expect命令时,计时器就开始计时,并会在计时器超时前不断对交换进程接收到的信息进行扫描,尝试字符串与信息的匹配。)

第二种:多分支模式

①expect {

字符串1 { 命令 }

字符串2 { 命令 }

}

解释:如果字符串1与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并结束该expect命令;如果字符串1与交换进程接收到的信息匹配失败、字符串2与交换进程接收到的信息匹配成功,执行包含在”{}”中的命令,并结束该expect命令;如果字符串1、字符串2皆与交换进程接收到的信息匹配失败,timeout秒后结束该expect命令。(注:脚本执行到expect命令时,计时器就开始计时,并会在计时器超时前不断对交换进程接收到的信息进行扫描,尝试字符串与信息的匹配。)

②expect {

字符串1 { 命令 }

字符串2 { 命令 }

timeout { 命令 }

}

解释:如果字符串1与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并结束该expect命令;如果字符串1与交换进程接收到的信息匹配失败、字符串2与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并结束该expect命令;如果字符串1、字符串2皆与交换进程接收到的信息匹配失败,timeout秒后执行包含在”{}”中的命令,之后结束该expect命令。(注:脚本执行到expect命令时,计时器就开始计时,并会在计时器超时前不断对交换进程接收到的信息进行扫描,尝试字符串与信息的匹配。)

第三种:循环多分支模式(注:exp_continue命令只能出现在expect命令的匹配语句中,执行到exp_continue命令时,脚本会跳出当前expect命令,并重新执行该expect命令,直到expect命令通过不包含exp_continue命令的匹配语句结束、或expect命令匹配超时结束。)

①expect {

字符串1 { 命令; exp_continue }

字符串2 { 命令 }

}

解释:如果字符串1与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并重新执行该expect命令;如果字符串1与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并重新执行该expect命令...;如果字符串1与交换进程接收到的信息匹配失败、字符串2与交换进程接收到的信息匹配成功,执行包含在”{}”中的命令,并结束该expect命令;如果字符串1、字符串2皆与交换进程接收到的信息匹配失败,timeout秒后结束该expect命令。(注:脚本执行到expect命令时,计时器就开始计时,并会在计时器超时前不断对交换进程接收到的信息进行扫描,尝试字符串与信息的匹配。)

②expect {

字符串1 { 命令; exp_continue }

字符串2 { 命令 }

timeout { 命令 }

}

解释:如果字符串1与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并重新执行该expect命令;如果字符串1与交换进程接收到的信息匹配成功,执行执行包含在”{}”中的命令,并重新执行该expect命令...;如果字符串1与交换进程接收到的信息匹配失败、字符串2与交换进程接收到的信息匹配成功,执行包含在”{}”中的命令,并结束该expect命令;如果字符串1、字符串2皆与交换进程接收到的信息匹配失败,timeout秒后执行包含在”{}”中的命令,之后结束该expect命令。(注:脚本执行到expect命令时,计时器就开始计时,并会在计时器超时前不断对交换进程接收到的信息进行扫描,尝试字符串与信息的匹配。)

8.timeout:timeout是expect中的一个关键字变量,用于控制expect命令的超时时间。需要注意的是,这个超时时间针对于整个expect命令,而不是针对于expect命令中的某条匹配语句。也就是说,只有expect命令中所有匹配语句都匹配失败后,才会开始计算超时时间。timeout变量值缺省为10(秒),我们可以通过”set timeout=值”的方式为其重新赋值,作用范围:本次赋值到下一次赋值间的所有expect命令。注:如果需要为timeout变量重新赋值,应在expect命令之外进行。

9.expect eof:该命令的作用是结束spawn交互进程,将命令行切回至运行脚本的主机(即从远端服务器登出)。

10.interact:缺省情况下,expect脚本执行完毕后会自动从远端服务器登出(即便没有显式地执行”expect eof”命令)。使用interact命令后,expect脚本执行完毕会继续保持当前状态,并将控制权移交给用户。

11.exit:结束该脚本。

expect中的if语句:

if { 条件表达式 } {

命令

}

if { 条件表达式 } {

命令

} else {

命令

}

expect中的while语句:

while { 条件表达式 } {

命令

}

expect中的for语句:

for { set i 1 } { $i =10 } { incr i } {

命令

}

incr变量名 步长   ——变量自增

incr 变量名 -步长    ——变量自减

数学运算需使用let、expr等工具


本文标题:exp命令linux ex linux
链接地址:http://hbruida.cn/article/dddscip.html