专栏首页Linux技术资源分享Linux之expect交互语言命令

Linux之expect交互语言命令

****前言**** 记得在去年在蝴蝶脚本已经看到过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命令


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ThinkPHP开发常用信息记录

    AlicFeng
  • ubuntu一步搭建Apache+MySQL+PHP环境

    AlicFeng
  • 玩玩树莓派之OS装机初始化

    AlicFeng
  • MySQL字符集详解

      在使用MySQL时要注意6个需要编码的地方:系统的编码、客户端、服务端、库、表、列。字符集编码不仅影响数据存储,还影响client程序和数据库之间的交互.在...

    changxin7
  • 浅谈unix之美

    昨天写作写得膀子疼,看来花费同样的时间,写作比写代码累多了。今天是个伟大的节日,祝老婆,妈妈及家人节日快乐!祝所有女性读者节日快乐! 今天早上收获一封意外的惊喜...

    tyrchen
  • 基因检测和健康保险,慢病管理上下游的掘金者

    大数据文摘
  • SpringDataJPA笔记(9)-使用transation注解引发的唯一索引冲突的问题

    SpringDataJPA笔记(9)-使用transation注解引发的唯一索引冲突的问题

    yingzi_code
  • [UWP 自定义控件]了解模板化控件(9):UI指南

    TemplateSettings提供一组只读属性,用于在新建ControlTemplate时使用这些约定的属性。

    dino.c
  • 专治 MySQL 乱码, 再也不想看到乱码了!

    MySQL出现乱码的原因有很多,一般与character_set参数有关。我们先来看看有哪些参数:

    黄泽杰
  • Spring Bean.xml配置c3p0数据库连接池

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    多凡

扫码关注云+社区

领取腾讯云代金券