Shell中的here文档
1.名词解释:
以下是维基百科解释:
here文档[1],又称作heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言里定义一个字串的方法。它可以保存文字里面的换行或是缩排等空白字符。一些语言允许在字串里执行变量替换和命令替换。
here文档最通用的语法是<<
紧跟一个标识符,从下一行开始是想要引用的文字,然后再在单独的一行用相同的标识符关闭。在Unix shell里,here文档通常用于给命令提供输入内容。
看起来比较复杂,here文档的作用是:把一系列需要从键盘输入的命令,模拟人工输入的方式,一行一行地交给交互式应用程序或命令。
其格式为:
1 $ tr a-z A-Z <<END_TEXT 2 > one two three 3 > uno dos tres 4 > END_TEXT 5 ONE TWO THREE 6 UNO DOS TRES
END_TEXT
被用作标识符。它指定了here文档的开始和结束,ONE TWO THREE
和UNO DOS TRES
是执行后tr
的输出。
2.例子
1 $ cat << EOF 2 > Working dir $PWD 3 > EOF 4 Working dir /home/user
EOF标定了here的开始和结束,这个例子相当与输入cat Working dir $PWD,得到的输出是一样的。明白没,在here文档中间的文字(Working dir $PWD)就是here文档前命令(cat)的输入!
注意:here文档要求其中的输入数据,尤其是作为结束标志的字符串分界符"LimitString"必须位于单独另起一行的起始位置。