Here Document 免交互
Here Document 概述
Here Document是一个特殊的用途的代码块。它在linux shell中使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如ftp,cat或read命令。Here Document 是标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个文件并用于命令的标准输入。基本语法格式如下:
特殊字符在“<<"在标记和命令之前,这样做的目的是将命令块的输出定向搭配程序或命令的stdin。标记的选择要确保不会出现在其他地方,避免出现混淆;两个标记之间的内容被当做是 一个文件并用作“命令”的标准输入。此外,Here Document 也可以与非交互程序和命令一起使用。
特殊字符在“在实际使用过程中,有四点需要注意:
标记可以使用任意的合法字符;
结尾标记一定要顶格写,前面不能有任何字符;
结尾的标记后面也不能有任何字符(包括空格);
开头的标记前后的空格会被省略掉;
在linux系统中使用wc-l命令后面直接跟文件名就可以统计文件内有多少行内容。采用Here Document免交互方式也可以实现对行数的统计。将要统计的内容置于标记“EOF”之间,直接把内容传给wc-l来统计,具体操作如下:
在编写shell脚本时使用Here Document 可以实现免交互,通过Here Document可以将一些简单的交互任务的交互过程去除掉,尤其是在编写脚本的过程中。
具体示例如下:
1,通过read命令接收输入并打印
通常使用read命令接收用户的输入值时会有交互过程,尤其是在脚本执行过程中遇到read命令,脚本会停下来的等待用户输入值才会继续。
这个示例中的输入值是两个eof标记之间的部分,也就是hi,这将作为变量i的值,在最后echo打印变量i的值,其值为hi