一、Here Document免交互
1.1免交互定义
- 使用I/O重定向的方式将命令列表提供给交互式程序
1.2语法格式
1.3实例
示例1:使用 wc -l 命令后面直接跟文件名就可以统计文件内有多少行内容,将要统计的内容置于标记“EOF” 之间,直接将内容传给 wc -l 来统计
示例2:通常使用 read 命令接收用户的输入值时会有交互过程,在EOF两个标记间可以输入变量值
1.4Here Document 变量设定 Here Document 也支持使用变量,如果标记之间有变量被使用,会先替换变量值。如 果想要将一些内容写入文件,除了常规的方法外,也可以使用 Here Document。如果写入 的内容中包含变量,在写入文件时要先将变量替换成实际值,在结合 cat 命令完成写入
示例1:在写入文件时会先将变量替换成实际值,再结合cat 命令完成写入
示例2:整体赋值给变量输出,然后通过echo命令将变量值打印出来,调用变量加上双引号会更好
示例3:在标记上添加双引号,关闭变量替换的功能
1.6多行注释
• Bash的默认注释是“#”,该注释方法只支持单行注释: Here Document 的引入解决了多行注释的问题
• “:"代表什么都不做的空命令。中间标记区域的内容不会被执行,会被bash忽略掉,因此可达到批量注释的效果
二、expect
2.1 expect 定义
是建立在tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互的相关问题
2.4实例
免交互远程ssh脚本