什么是HereDocumentHereDocument是LinuxShell中的一种特殊的重定向方法,其基本形式如下cmd<FirstLine>SecondLine>ThirdLineEOF>EOFFirstLineSecondLineThirdLineEOF注:>该符号为终端生成的提示输入信息的标识。这里有几点需要注意。EOF只是一个标志,你可以用任何合法字符代替的分隔符作为结束,必须写在大写。结束的分隔符前不能有任何字符,作为开头的分隔符后不能有任何字符(包括空格)。起始定界符前后的空格将被省略。可以在终端上使用,也可以在shell文件中使用,例如下面的here.sh文件cat<output.shecho"hello"echo"world"EOF使用shhere.sh来运行这个脚本文件,你会得到output.sh是一个新文件,内容如下echo"hello"echo"world"HereDocument的转换分隔符和变量HereDocument的内容中,不仅可以包含普通字符,还可以包含变量可以用在里面,比如上面把here.sh改成cat<output.shecho"Thisisoutput"echo$1EOF使用shhere.shHereDocument运行脚本得到output.sh的内容echo"Thisisoutput"echoHereDocumentHere$1被扩展成为脚本HereDocument的一个参数,但是如果有时候不想扩展这个变量怎么办,可以在初始分隔符前后加上",比如把上面的这里改一下。shtocat<<"EOF">output.sh#注意引号echo"hello"ech获取的output.sh的内容o“世界”EOF是echo"Thisisoutput"echo$1<<变成<<-HereDocument另一种用法是把'<<'改成'<<-'使用<<-的唯一变化是内容部分每行前面的制表符这里的文件(制表符)将被删除。这个用法是在写HereDocument的时候将content部分缩进,方便阅读代码。原文链接:http://blog.itpub.net/23890223/viewspace-1225789/