Shell脚本实现免交互

免交互:

here document

  • 重定向输入或输出,EOF(end of file)的缩写
  • 语法:

批量注释 :

expect

Here Document免交互

概述:Here Document是一个特殊用途的代码块,在Linux Shell中使用重定向的方式将命令列表提供给交互式程序或命令,如ftp、read或cat命令。Here Document是标准输入的一种替代品,可以使脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个文件并用作命令的标准输入。

格式如下:

使用过程中,需要注意以下几点:

  • 标记可以使用任意合法的字符
  • 结尾的标记一定要顶格写,前面不能有任何字符
  • 结尾的标记后面也不能有任何字符(包括空格)
  • 开头的标记前后空格会被省略掉

Here Document免交互

1、通过read命令接收输入并打印

2、通过passwd给用户设置密码

Here Document变量设定

Here Document多行注释

Bash的默认注释是“#”,该注释方法只适合单行注释,在shell编辑器中可以使用以下方法实现多行注释

通过使用冒号+标记的方式,将写入到该范围内的字符串或命令实现批量注释

expect免交互

概述:expect是建立在tcl语言基础上的一个工具,它可以让一些需要交互的任务自动化的完成,相当于模拟 了用户和命令行的交互操作。expect是用来进行自动化控制的测试工具。

expect命令主要用来判断上次输出结果里面是否包含指定的字符串,只能捕捉由spawn启动的进程的输出。expect接收命令执行后的输出,然后和期望字符串进行匹配,若匹配成功,则会使用send向进程发送字符串,用于模拟用户的输入

spawn后面通常跟一个命令,表示开启一个会话。启动进程,并跟踪后续交互信息。

结束符

  • expect eof:等待执行结束,若没有这句,可能导致命令还没有执行,脚本就结束了
  • interact:执行完成后保持交互状态,把控制权交给控制台,这时可以手动输入信息

注意interact和expect eof只能二选一

set

  • expect默认的超时时间是10秒,通过set命令可以设置会话超时时间,

expect_continue,表示可以向下继续执行命令

expect_user,表示回显命令,相当于echo

expect的执行方式

  • 直接执行
    • 顾名思义,就是直接对命令进行输出执行,较为简单直接
  • 嵌入执行
    • 需要执行较为复杂的脚本程序时,需要调用expect脚本,这样使用起来不灵活,这时可以采用嵌入模式

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值