Shell:编程之免交互

一、Here Document免交互

概述

  • 使用I/0重定向的方式将命令列表提供给交互式程序
  • 标准输入的一种替代品
  • 语法格式

命令 <<标记

...

...

标记

使用注意事项

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

二、Here Document常规用法

1、命令

例,通过read命令接受输入并打印

[root@localhost ~]# read a<<EOF
> lover fucker
> EOF                                                                                
[root@localhost ~]# echo $a                                                          
lover fucker

cat命令输出免交互

[root@localhost opt]# cat > demo1.txt <<EOF
> 王鹏太帅辣!!!!
> EOF
[root@localhost opt]# cat demo1.txt
王鹏太帅辣!!!!

2、变量替换

三、Expec基本命令

1、spawn

  • spawn 后面迪常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交信息。
  • 例:spawn passwd root

2、expect

  • 判断上次输出结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回
  • 只能捕捉由spawn启动的进程的输出
  • 用于接收命令执行后的输出,然后和期望的字符串匹配

3、send

  • 向进程发送字符串,用于模拟用户的输入
  • 该命令不能自动回车换行,一般要加\(回车)

四、Expect执行方式

方式一:expect "密码" { send "abcl23\r" }                       #同一行send部分要有{}

方式二:

  • expect "密码" 
  • send " abcl23\r"                                                        #换行send部分不需要有{}

方式三:
expect支持多个分支
expect
#只要匹配了其中一个情况,执行相应的send语句后退出该expect语句

  • "密码1"{send "abc123\r"}
  • "密码2"{send "123456\r"}
  • "密码3"{send "123123\r"}

五、Expect案例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值