Shell脚本之免交互

121 阅读2分钟

一、Here Document免交互

1.1免交互定义

  • 使用I/O重定向的方式将命令列表提供给交互式程序

1.2语法格式

image.png

1.3实例

示例1:使用 wc -l 命令后面直接跟文件名就可以统计文件内有多少行内容,将要统计的内容置于标记“EOF” 之间,直接将内容传给 wc -l 来统计

image.png

示例2:通常使用 read 命令接收用户的输入值时会有交互过程,在EOF两个标记间可以输入变量值

image.png

image.png

1.4Here Document 变量设定 Here Document 也支持使用变量,如果标记之间有变量被使用,会先替换变量值。如 果想要将一些内容写入文件,除了常规的方法外,也可以使用 Here Document。如果写入 的内容中包含变量,在写入文件时要先将变量替换成实际值,在结合 cat 命令完成写入

示例1:在写入文件时会先将变量替换成实际值,再结合cat 命令完成写入 image.png 示例2:整体赋值给变量输出,然后通过echo命令将变量值打印出来,调用变量加上双引号会更好 image.png 示例3:在标记上添加双引号,关闭变量替换的功能 image.png

1.6多行注释

• Bash的默认注释是“#”,该注释方法只支持单行注释: Here Document 的引入解决了多行注释的问题

• “:"代表什么都不做的空命令。中间标记区域的内容不会被执行,会被bash忽略掉,因此可达到批量注释的效果

image.png

二、expect

2.1 expect 定义

是建立在tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互的相关问题

image.png

image.png image.png image.png image.png

2.4实例

免交互远程ssh脚本

image.png

image.png