SHELL脚本之另一种脚本EXPECT

“shell是世界上最好的脚本语言!”🌚🌚🌚

shell脚本虽然可以很方便的帮我处理一些琐碎的问题,但同时也有它的缺点:shell脚本是一种无交互式的脚本

什么叫无交互式呢,比如说删除这个命令

[root@localhost ~]# rm test
rm:是否删除普通文件 "test"?

在删除一个文件时,系统会给一条交互信息询问是否要删除文件,所以删除一个文件需要有两个操作:删除->确认删除(当然你也可以加-f来强制删除就不会有这个交互过程了,这里只是举一个例子),而shell执行命令时实际上只能一条一条的执行,并不能处理这些交互过程

所以这就引出了本文的主角:expect,一种交互式的脚本工具


其他我就不多说了,直接来将expect怎么使用吧

  • 安装:yum install expect

  • 编写expect脚本:

    • 脚本名一般以.exp结尾
    • 第一行为#!/usr/bin/expect
  • 定义变量:

    • set 变量名 值

    • set 变量名 [lindex $argv 0]:从命令参数数组中取值

    • 特殊变量:

      • $argc:参数个数,相当于shell中的$#
      • $argv:所有参数的数组,索引从0开始
  • 语句:

    • set 定义变量
      • set timeout 300:将超时时间设置成300(秒)
    • spawn COMMAND:监控命令的输出
    • expect “STRING” { send “STRING” }:捕获输出,并执行相应命令
    • send “STRING\r”:发送“STRING”,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值