从shell脚本中的EOF说起

Posted 阿铭linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从shell脚本中的EOF说起相关的知识,希望对你有一定的参考价值。



今天,阿铭介绍一个不太常见的概念: 

嵌入文档

英文名叫做Here Documents。


也就是你在shell脚本中见过的

cat <<EOF的用法。

先来上一段shell代码:


#!/bin/bash

cat > 1.txt <<EOF

Hello

My

name

is aming.

This's a test text.

EOF


运行这个脚本后,会产生1.txt文档,内容为:


Hello

My

name

is aming.

This's a test text.



这个用法就是Here Documents。


这里的"EOF"叫做标识符,还可以换成其他字符串,比如写成ABC、123等等,随便你定义成啥,但要保证前后对应,也不要造成和其他字符串混淆。


通常大家习惯写EOF,这样也容易让别人识别。就跟“shell脚本名字要以.sh结尾”同样的道理。


Here Documents需要注意一点,最后面那个标识符(EOF)

必须要顶格写


当然,不一定非得cat <<EOF,你也可以换成其他命令,例如


wc -l <<EOF

1

2

3

EOF


关于Here Documents的作用,不用太多介绍。


这里我只讲一个典型的用法:在shell脚本中需要调用expect脚本,那么expect脚本需要事先写好,而且是额外的一个文件。


此时,可以使用Here Documents,把expect脚本内容写入到指定文件里,之后再调用它。


这样做的好处是,一个shell脚本搞定,不需要额外再编写expect脚本,方便管理。




- END -

每日原创 | 阿铭linux


 
   
   
 

提升自己,才是世界上最稳健的投资


以上是关于从shell脚本中的EOF说起的主要内容,如果未能解决你的问题,请参考以下文章

从 RPM 规范文件中提取 shell 脚本以进行静态分析

linux shell里面的EOF命令有啥用

linux shell中的EOF

在centos系统shell脚本中cat和重定向符号<<EOF结合使用的注意事项

shell脚本编程相关1

代码片段:Shell脚本实现重复执行和多进程