本文主要是介绍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为例)
5:样例
这篇关于expect的简单使用,linux交互性shell的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!