expect的简单使用,linux交互性shell

expect的学习使用触发自一个项目,项目平台是树莓派三代,要求是要在root用户下面执行一个名为61850Svr的程序。



1:首先需要你的运行环境中已经安装好了expect,怎么安装不说了。


2:对expect的理念认知:

①:expect是单独的一种脚本语言工具。expect不是/bin/sh,也不是/bin/bash,他是linux用于模拟人机交互行为的程序,他是一个默认安装于/usr/bin下的程序。


②:作为模拟交互,那么自然是模仿人机的交互动作,expect的流程就是按照这个思路来的。概括一下人在操作linux时的动作:

                壹:人输入rm xxx、cp xxx、su...等命令,回车。

   贰:机器返回执行信息结果。

                 叁:人根据返回信息继续选择“”yes、no“或者接着输入rm xxx,cp xxx等命令,或不在继续。


③:交互的双方默认是expect脚本和机器内核,字符终端只作为中间载体。


④:所谓交互命令特指su、ssh、tftp等命令,这些命令在启动后需要和“人”进行交互,而单纯的echo “xxx”、ls -all这些其实并没有交互的要求,没有必要用expect,该篇主要针对的是交互需求命令。

3:对expect语法的认知:

①:需要#!/usr/bin/expect作为起始行

②:expect的几个关键语法标示:

壹:spawn   //expect脚本中用于向机器发出首个linux命令用,该命令将在系统中创建一个进程

贰:expect   //expect脚本中用于等待和分析机器执行结果用

叁:send      //expect脚本中用于模仿“人"向机器进程发出linux命令用

肆:send_user    //expect脚本中用于直接向中间载体-字符终端发送信息用

伍:interact    //expect脚本中用于将交互双方由expect脚本和机器内核改为——>字符终端和机器内核(即为正常人和机器交互的模式)

4:expect(交互命令流程图示,以登录root为例)

expect的简单使用,linux交互性shell_第1张图片

5:样例




你可能感兴趣的:(linux语言工具)