Here文档是一种具有特殊功能的代码块,是I/O重定向的一种特例。Here文档采用I/O重定向的方法,把一系列需要从键盘输入的命令,模拟人工输入的方式,一行一行地交给交互式应用程序或命令。其具体的语法格式如下:
program<<limitstring
command1
command2
command3
.......
commandN
limitString
其中,特殊的I/O重定向符号“<<”与“LimitString ”是here文档的开始,单独另起一行的第二个Limitstring 表示here文档的结束。
下面的例子说明怎样利用here文档运行vim编辑器,模拟vim编辑器的交互过程,输入“i”命令和ESC键,插入两行数据,最后把编辑器的数据内容写入特定的文件。
#!/bin/bash // emnvim
if [ -z "$1" ]
then
echo "Usage :`basename $0` filename"
exit 1
fi
vim $1<<EOF
i
I cannot choose the best.
the best choosr me.
^[
zz
EOF
exit 0
使用下列命令运行shell 脚本时,即可得到一个自动编辑的文本文件
$emnvim fname
$cat fname
I cannot choose the best.
the best choose me.
注意:here文档要求其中的输入数据,尤其是作为结束标志的字符串分界符"LimitString"必须位于单独另起一行的起始位置。