linux 免交互

  • linux 免交互已关闭评论
  • 108 次浏览
  • A+
所属分类:linux技术
摘要

目录 一、免交互概念 二、基本免交互例子 三、expect 四、实验演示   

目录

一、免交互概念

二、基本免交互例子

三、expect

四、实验演示

 

 

 

 

 

 

 

 

一、免交互概念

  概念:对于shell脚本的自动化运维,就要实现免交互来达到自动化运维的效果

 

二、基本免交互例子

  可以免交互统计出行号

  1.命令行免交互统计

linux 免交互

   2.使用脚本免交互统计

linux 免交互

   3.使用免交互命令打印

linux 免交互

   4.免交互修改密码

linux 免交互

   5.重定向查看

linux 免交互

   6.重定向到指定文件

linux 免交互

   7.重定向直接指定文件

linux 免交互

   8.使用脚本完成重定向输入

linux 免交互

linux 免交互

   9.免交互脚本完成赋值变量

linux 免交互

linux 免交互

   10.关闭变量替换功能,按照原来样子输出

linux 免交互

linux 免交互

   11.去tab键,无法去空格

linux 免交互

linux 免交互

   12.注释打印,无法生效:批量注释

  (1)脚本展示

linux 免交互

linux 免交互

   (2)命令行展示

linux 免交互

 

 

 

三、expect

  expect:建立在tcl语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互相关的问题。

  使用方法:表示捕捉关键词展示行

  1.脚本解释器

  (1)加入引用程序路径表示使用expect,表明使用这个shell

    运行只能使用./运行,运行前赋权777

linux 免交互

   (2)嵌套使用

    可以使用sh运行

linux 免交互

   

  2.expect符号:

    n:表示换行符。
    t:表示制表符。
    r:表示回车符。
    b:表示退格符。

  3.执行命令

    spawn 后面通常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交互信息。

  例如:

linux 免交互

linux 免交互

   3.send

    向进程发送字符串,用于模拟用户的输入;该命令不能自动回车换行,一般要加r(回车)或者n

  例子:

linux 免交互

 

linux 免交互

   4.expect多分支

   例子演示:ssh远程登录

linux 免交互

 

linux 免交互

   5.结束符

    expect eof:表示交互结束,等待执行结束,退回到原用户,与spawn对应

    interact:执行完成后保持交互状态,把控制权交给控制台,会停留在目标终端而不会退回到原终端,interact后的命令不起作用

    (1)expect(会在固定时间退回原先页面)

linux 免交互

 

linux 免交互

     (2)interact(停留在操作页面)

linux 免交互

   6.set

    expect 默认的超时时间是 10 秒,通过 set 命令可以设置会话超时时间,若不限制超时时间则应设置为-1。

      例:set timeout 5linux 免交互

 

  7.exp_continue

    exp_continue 类似于控制语句中的 continue 语句。表示允许 expect 继续向下执行指令。

linux 免交互

 

  8.send_user

    send_user 表示回显命令,相当于 echo。打印的功能

  例子演示:

linux 免交互

 

linux 免交互

   9.接收参数

    expect 脚本可以接受从bash命令行传递的参数

      使用[lindex $argv n]获得。其中n从0开始

  例子演示:

linux 免交互

linux 免交互

 

四、实验演示

  1.免交互预设值修改用户密码

linux 免交互

 

linux 免交互

   2.su切换用户

linux 免交互

 

linux 免交互

   3.创建用户并设置密码

linux 免交互

 

linux 免交互

   4.实现 ssh 自动登录

linux 免交互

linux 免交互

    5.怎么能够实现密码输入错误的提示

linux 免交互

 

linux 免交互

   6.用免交互的方式给硬盘分区,格式化,挂载

linux 免交互

 

linux 免交互