Linux之expect交互语言命令

作者: AlicFeng | 来源:发表于2016-07-14 23:47 被阅读245次

****前言****
记得在去年在蝴蝶脚本已经看到过expect,只不过没有去留意它是什么,是干什么的,然而今天去了解了,并利用它来写自动化交互脚本。在服务器开发中,有时候需要同步文件(scp),远程服务器(ssh)等等,难免要进行密码的检验,这就麻烦了,不过认识expect就有解决方案啦,那么我们来认识一下吧~~~


****expect简介****
expect是Linux脚本编程工具语言,用来实现自动和交互式任务进行通信,从而不用手动处理。换句话说就是这些命令和程序是期望从终端得到输入,一般来说这些输入都需要手工输入进行的。 expect可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。


****expect安装****

$sudo apt-get install expect

****简单使用****

#!/usr/bin/expect
# ---------- 配置信息开始----------
#变量
set password heiheiPsd 
# expect脚本设置 
set timeout -1
#  ----------配置信息结束----------

spawn ssh root@192.168.88.888
expect "*password:"
send "$password\r"
interact
  • send:用于向进程发送字符串
  • expect: 期望从进程接收到的字符串,后面也可以跟正则表达式
  • spawn:启动进程
  • set timeout -1 :脚本运行超时(秒) -1不会超时

****与bash共用****
从上面可以看出第一行已经指定了脚本的解析器,但是很多时候或场景我们只希望expect作为shell脚本的一个小小的调用部分,然而使可以的,这也是最常用的。

#!/bin/bash

echo "this bash func"

#---------expect开始----------
set password fenglican 
set timeout -1

expect<<- END
spawn ssh root@192.168.88.888
expect "*password:"
send "$password\r"
interact

END
#---------expect结束----------

Linux运维基础且常用命令
Linux之crontab定时任务
Linux之sed文本处理命令
Linux之ps进程查看命令
Linux之expect交互语言命令
Linux之tail命令


****价值源于技术,贡献源于分享****

相关文章

  • Linux之expect交互语言命令

    ****前言****记得在去年在蝴蝶脚本已经看到过expect,只不过没有去留意它是什么,是干什么的,然而今天去了...

  • 2020-04-04

    Linux Expect 用法 关键字解释: spawn交互程序开始后面跟命令或者指定程序 expect获取匹配信...

  • shell_expect实现自动交互免密登录操作

    expect实现自动交互免密登录操作 expect 内部命令 在命令行直接输入expect可以进入expect程序...

  • linux 安装expect

    [linux expect 安装 spawn命令激活一个Unix程序来进行交互式的运行。send命令向进程发送字符...

  • expect 用法(监控脚本)

    关于expect expect #自动应答命令用于交互式命令的自动执行spawn #expect中的监控程序,其运...

  • expect处理非交互式命令

    ssh登陆。由于ssh的输入来源是终端,expect是Linux中专门以非交互方式处理交互式命令的工具。原理是在s...

  • shell 常用命令

    shell 常用命令 expect expect 命令是用来实现自动化交互通信的,比如当你在脚本中通过某些命令登录...

  • Linux Shell交互式自动化运维程序

    Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会...

  • [Linux-CMD]-expect

    转发文章来自:这里和这里 一、简述 Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在...

  • Command 脚本自动交互

    自动交互场景 ssh 以 密码 形式登陆远程主机时实现密码自动输入 解决方案 使用expect命令 expect ...

网友评论

    本文标题:Linux之expect交互语言命令

    本文链接:https://www.haomeiwen.com/subject/nhqyjttx.html