Shell——免交互

本文详细介绍了Shell中的Here Document概念和使用注意事项,包括免交互输入、变量设定和格式控制。此外,还深入讲解了Expect工具,用于自动化控制和测试,解决了Shell脚本的交互问题,涵盖其安装、基本命令如spawn、expect和send,以及如何编写Expect脚本。
摘要由CSDN通过智能技术生成

目录

一、Here Document免交互

1.1 Here Document 概述

1.2 Here Document 使用注意事项

1.3  Here Document常规用法

1.3.1  Here Document 免交互

1.3.2  Here Document变量设定 

1.3.3 Here Document格式控

1.3.4  多行注释

二、 Expect  

2.1  Expect概述

2.2 Expect安装

2.3  Expect基本命令

2.3.1 脚本解释器

2.3.2  spawn

2.3.3 expect

2.3.4 send

2.3.4 结束符

2.3.5   set

2.3.6  exp_continue

2.3.7  send usr

2.3.8  接收参数

2.4 Expect语法2.4.1  单分支语法

2.4.2 多分支语法

2.5 使用expect  编写脚本

三、总结


一、Here Document免交互

Here document (here-document, here-text, heredoc, hereis, here-string, here-script)是一个文件文字或输入流文字:它是源代码文件的一部分,被视为它是一个单独的文件。该术语还用于使用类似语法,保留换行符和文本中的其他空格(包括缩进)的多行字符串文字形式。

1.1 Here Document 概述

使用I/O重定向的方式将命令列表提供给交互程序(I是in/O是out)

标准输入的一种替代品

语法格式:

命令 <<标记   #自定义
...
...
标记     #自定义

注:特殊字符“<<”在标记和命令之前,可以将命令块地输出重定向到程序或命令地stdin。标记地选择要确保不会出现在其他地方,避免出现混淆;两个标记之间地内容被当作是一个文件并用作“命令”的标准输入。另外Here Document  也可以与非交互程序和命令一起使用。
 

1.2 Here Document 使用注意事项

标记可以使用任意合法字符

结尾的标记一定要顶格写,前面不能有任何字符

结尾的标记后面也不能有任何字符(包括空格)

开头标记前后的空格会被省略掉

 扩展:有两种写法:

①:cat <<EOF>1.txt

②:使用tee 命令  :  tee  1.txt  <<EOF

1.3  Here Document常规用法

先发起,交代动作命令;后免交互输入的值

1.3.1  Here Document 免交互

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

 使用免交互给用户设置密码

1.3.2  Here Document变量设定 

变量替换

在写入文件时会先将变量替换成实际值,在结合cat命令完成写入

 

整体赋值给变量,然后通过echo命令将变量值打印出来 

1.3.3 Here Document格式控

 关闭变量替换功能

关闭变量的替换功能,按照字符原本的样子输出,不做任何的修改或替换

去除每行之前的TAB字符

开头标记定格写入,在前面加上’-’,对之后赋值内容中出现的Tab间隔自动去除影响

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值