轉載
原文地址:http://blog.163.com/njut_wangjian/blog/static/1657964252013112152418345/
在shell編程中,”EOF“通常與”<<“結合使用,“<<EOF“表示后續的輸入作為子命令或子shell的輸入,直到遇到”EOF“,再次返回到主調shell,可將其理解為分界符(delimiter)。既然是分界符,那么形式自然不是固定的,這里可以將”EOF“可以進行自定義,但是前后的”EOF“必須成對出現且不能和shell命令沖突。其使用形式如下:
交互式程序(命令)<<EOF command1 command2 ... EOF |
”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