七、shell编程-expect

1.expect

  前言

    观察ssh登录的交互现象,有些程序难以避免的需要交互。如何解决脚本与程序的交互问题。

    

 

     expert就是专门解决脚本和程序之间的交互问题

 

  语法

    

    spawn  expect的内部命令,启动一个shell程序

    expect  期望哪些内容

    yes/no  就send发送yes。\r表示回车

    password  就send发送centos

    exp_continue  跳过循环,继续下一条语句

    interact  允许用户交互(实际不一定用上这个)

 

 

  安装

    yum install -y expect tcl tclx tcl-devel 

 

 

 

2.示例1

  通过expect解决ssh交互问题

  通过expect编写脚本

  

 

  试用,不能使用bash,因为是用expect语言写的

  

 

  试用,成功

  

 

 

 

3.实战2

  公钥推送

  准备工作:安装expect,准备公钥

  通过shell循环判断在线主机

  通过expect进行交互

  优化脚本

  

  把ping和expect结合

  

 

  两种方法

  ①/usr/bin/expect /root/ssh.exp  这要是叫bash执行到这里后用/usr/bin/expect打开ssh.exp文件继续执行

  ②/usr/bin/expect <<-EOF

  内容

  EOF  这是等于把内容以文档的形式让/usr/bin/expect执行

  一般都用第一种,因为这样美观且不易混淆

 

  

 

posted @ 2022-02-11 20:27  真渡  阅读(112)  评论(0)    收藏  举报