http://blog.163.com/njut_wangjian/blog/static/1657964252013112152418345/

在shell编程中,”EOF“通常与”<<“结合使 用,“<<EOF“表示后续的输入作为子命令或子shell的输入,直到遇到”EOF“,再次返回到主调shell,可将其理解为分界符 (delimiter)。既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和 shell命令冲突。其使用形式如下:

交互式程序(命令)<<EOF
command1
command2
...
EOF

当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。

       "EOF"一般常和cat命令连用。

注意,最后的”EOF“必须单独占一行。

 

下面以cat命令为例讲解”EOF“使用。一般有以下两种形式

1.cat<<EOF

2.cat<<EOF>filename或者cat<<EOF>>filename(cat<<EOF>filename或者cat<<EOF>>filename )

其实,第一种形式和第二种形式没有什么本质的区别,第一种形式将内容直接输出到标准输出(屏幕),而第二种形式将标准输出进行重定向,将本应输出到屏幕的内容重定向到文件而已。

 

例1:

#cat<<EOF

>12

>34D

>EOF

12

34D

 

例2:

#cat>>filename<<EOF

>DHA

>23

>EOF

#cat filename

DHA

23

 

相关资料:​​http://linux.die.net/abs-guide/here-docs.html​

          ​​http://linux.die.net/abs-guide/io-redirection.html#IOREDIRREF​