zoukankan      html  css  js  c++  java
  • Linux安装expect

    主要参考:https://www.cnblogs.com/zhenbianshu/p/5867440.html

    expect解释器

    expect是一个能实现自动和交互式任务的解释器,它也能解释常见的shell语法命令,其特色在以下几个命令:

    spawn命令:

    spawn command命令会fork一个子进程去执行command命令,然后在此子进程中执行后面的命令;

    在ssh自动登陆脚本中,我们使用 spawn ssh user_name@ip_str,fork一个子进程执行ssh登陆命令;

    expect命令:

    expect命令是expect解释器的关键命令,它的一般用法为 expect "string",即期望获取到string字符串,可在在string字符串里使用 * 等通配符;

    string与命令行返回的信息匹配后,expect会立刻向下执行脚本;

    set timeout命令:

    set timeout n命令将expect命令的等待超时时间设置为n秒,在n秒内还没有获取到其期待的命令,expect 为false,脚本会继续向下执行;

    send命令:

    send命令的一般用法为 send "string",它们会我们平常输入命令一样向命令行输入一条信息,当然不要忘了在string后面添加上   表示输入回车;

    interact命令:

    interact命令很简单,执行到此命令时,脚本fork的子进程会将操作权交给用户,允许用户与当前shell进行交互;

    我试了网上很多安装方法,都存在问题,最后解决方案

    sudo apt-get install expect
    

    这样也不需要tcl

    写了一个自动ssh登陆机器人服务器的脚本文件

    #!/usr/bin/expect                   // 指定shebang
    
    set timeout 3                       // 设定超时时间为3秒
    spawn ssh user_name@172.***.***.*** // fork一个子进程执行ssh命令
    expect "*word*"                 // 期待匹配到 'user_name@ip_string's password:' 
    send "my_password
    "                // 向命令行输入密码并回车
    interact                            // 允许用户与命令行交互

  • 相关阅读:
    java、javaw和javaws的区别
    Hibernate4教程二:基本配置(2)
    Maven入门指南10:Maven的生命周期和插件
    Java中的断言(assert)
    MySQL的数据类型:文本、数字、日期/时间
    面向对象的三大基本特征和五大基本原则
    高内聚低耦合的介绍
    9.7 模拟赛
    16-17学期计划(每周)
    JZOJ 5281 钦点
  • 原文地址:https://www.cnblogs.com/BambooEatPanda/p/8213533.html
Copyright © 2011-2022 走看看