Here-documentshell
由於能夠直接在命令行中使用重定向,而不須要文件做爲重定向輸入數據,這種方式也稱爲內置重定向輸入(inline input redirection ,它將delimiter 之間的內容傳遞給cmd 做爲輸入內容(注意固定的格式形式),能夠方便將幾行文本傳遞給參數,好比打印幫助信息。而且here-documents中的行都支持參數擴展,命令替換,和數學表達式擴展,和文本用雙引號引發來的效果同樣。ide
cmd << HEREspa
Here Document Content 命令行
HERExml
HERE只是一個標記,能夠是任務字符串,結尾HERE要頂格,HERE自己不支持擴展(參考第二條)文檔
第一個標記爲HERE時,here document content 支持參數擴展,命令替換,算術擴展,路徑擴展。能夠使用\ 來轉義here document content中的\,$,` ,引用特殊字符字符串
第一個標記改成-HERE時,忽略每行文本前的TAB字符(不刪除空格字符),使用TAB以生成易於閱讀的shell腳本。input
第一個標記改成"HERE"或者'HERE'時,關閉變量替換cmd
HERE document的另一種形式cmd <<<HERE, 其中HERE自己支持擴展替換。如cat <<<`ls`數學
e.g
cat >catfile <<"eof"
# <<結束輸入字符的意思 當鍵盤輸入eof 時結束輸入,至關於ctrl+d
生成臨時文檔
cat <<-HERE > /tmp/db2v10.rsp
PROD =$prodType
FILE =$DB2BASE
LIC_AGREEMENT =ACCEPT
INTERACTIVE =NONE
CONFIG_ONLY =NO
INSTALL_TYPE =TYPICAL
HERE
HERE document作多行批註
:<<HERE
批註1
批註2
批註3
若是你以爲無聊還能夠繼續批註4
HERE
:表明什麼都不作