Shell heredoc

Shell heredoc
一个 here document就是一段带有特殊目的的代码段. 它使 用IO重定向的形式将一个命令序列传递到一个交互程序或者命令中, 比如frp,cat或者 ex文本编辑器.
interactive-program <<delimiter
command #1
command #2
...
delimiter

默认情况下,变量会被替换:
 $ cat << EOF
 > Working dir $PWD
 > EOF
 Working dir /home/user

如果delimiter用双引号引起来,则不会有变量替换:
 $ cat << "EOF"
 > Working dir $PWD
 > EOF
 Working dir $PWD

重定向 符号 << 可以使用 <<- ,在这种情况下,heredoc 文本中的前导 tab 字符会被删除,但是空格不会被删除!

注意:
结束标记前一定不能有任何空格或者tab,否则执行失败!

heredoc 另外一个比较有用的是显示消息块,如Usage信息:
cat <<End-of-message
-------------------------------------
This is line 1 of the message.
This is line 2 of the message.
This is line 3 of the message.
This is line 4 of the message.
This is the last line of the message.
-------------------------------------
End-of-message

参考:
http://tldp.org/LDP/abs/html/here-docs.html
http://febird.iteye.com/blog/588509
http://en.wikipedia.org/wiki/Here_document

你可能感兴趣的:(Shell heredoc)