Bash中Here Document的各种语法姿势
here document表示这里是一个文档,文档有起始和终止标记,起始和终止标记中间的内容,属于文档内容。
虽说here document作为文档可以当作一个文件名来看待,但因为它是以重定向的方式存在的,使得它有各种使用姿势。
将here document内容写进文件
1 | cat >>a.log <<EOF |
这就是here document作为一种重定向语法的好处,使用here document时,它的位置可以随意摆放,而不像使用文件名,位置固定死了。
将here document内容放进管道
1 | 方案一 |
其实只要理解了here document是一种重定向,位置可随意,就很容易理解上面几种方案。
多个here document嵌套
在Perl和Ruby语言中,都支持多个Here Document嵌套的语法,有时候这非常方便。但是在bash中,也可以实现嵌套。
1 | (cat ; echo '======='; cat <&3) <<EOF 3<<eof |