shell编程之Expect免交互
shell编程之Expect免交互 一、前言 shell脚本存在的核心意义就在于基于shell命令简化甚至省略可避免的人工操作,通过各种控制流程结构以及正则表达式等方法,逐步实现自动化操作的整个过程,由此也可见,shell并没有面向对象的思想,类似C语言,毕竟C语言是操作系统或者说是内核的核心语言。 所以,语言并无优劣之分,只是每个人使用的习惯与方式不同,换句话说,难易的不是语言,而是思想与突如其来的灵感。 二、Expect概述与安装 Expect概述 Expect是建立在TCL基础上的一个工具,Expect是用来进行自动化控制和测试的工具。主要解决shell脚本中不可交互的问题。对于大规模的Linux运维很有帮助。 在Linux运维和开发中,我们经常需要远程登录服务器进行操作,登录的过程是一个交互过程,需要输入yes/no password等信息。为了模拟这种输入,可以使用Expect脚本。 Expect的安装:yum install -y expect 三、基本命令 send:向进程发送字符串,用于模拟用户的输入,但不支持换行 一般需要加上 \r expect:内部命令 判断上次输出结果里是否包含指定的字符串,有则返回,反之就等待超时时间后返回。 只能捕捉由spawn启动的进程的输出。 spawn:启动进程,并跟踪后续交互信息。 interact