here文档 here doc EOF重定向
here文檔? here doc EOF重定向
http://www.cnblogs.com/xiangzi888/archive/2012/03/24/2415077.html
?
在shell腳本程序中,向一條命令傳遞輸入的一種特殊方法是使用here文檔。一個here document就是一段帶有特殊目的的代碼段。它使用I/O重定向的形式將一個命令序列傳遞到一個交互程序或者命令中。它允許一條命令在獲得輸入數據時就好像是在讀取一個文件或鍵盤一樣,而實際是從腳本程序中得到輸入數據。格式:
COMMAND <<SpecialString
...
SpecialString
SpecialString用來界定命令序列的范圍,是一個特殊的字符序列,用來界定命令序列的范圍,可自定義,但不能出現在傳遞命令的文檔內容中。
使用舉例:
1.使用cat打印多行消息,也可重定向哦(echo 有點麻煩了),同樣支持參數替換哦
?
#重寫 cat > /tmp/a.txt<< EOF [client] port = $port socket = /data/mysql/mysql$port/tmp/mysql.sock [mysqld_safe] #malloc-lib= /usr/local/mysql/lib/mysql/libjemalloc.so EOF#追加 cat >> /tmp/a.txt<< EOF [client] port = $port socket = /data/mysql/mysql$port/tmp/mysql.sock [mysqld_safe] #malloc-lib= /usr/local/mysql/lib/mysql/libjemalloc.so EOF?
2.設置變量
?
3. 廣播: 將消息發送給每個登陸的用戶
?
4.帶有抑制tab功能的多行消息(去掉每行前面的TAB字符)
?
5.關閉變量替換的功能 ?
?
?
6.生成另外一個腳本(比較詭異!)
?
7.here doc與函數
?
?
8.‘匿名’here文檔,不顯示!(利用 : 可以注釋掉一段代碼塊,或者寫一個自文檔化(self-documenting)的腳本,詳見:http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/abs-3.9.1_cn/html/here-docs.html)
?
?
9.一些注意事項
a.某些工具是不能放入here document中運行的。
b.結尾的limit string, 就是here document最后一行的limit string, 必須從第一個字符開始. 它的前面不能夠有任何前置的空白. 而在這個limit string后邊的空白也會引起異常. 空白將會阻止limit string的識別.
c.對于那些使用"here document", 并且非常復雜的任務, 最好考慮使用expect腳本語言, 這種語言就是為了達到向交互程序添加輸入的目的而量身定做的.
?
?
?
?
f
轉載于:https://www.cnblogs.com/MYSQLZOUQI/p/7410968.html
總結
以上是生活随笔為你收集整理的here文档 here doc EOF重定向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发华润通联名卡怎么样?丰富权益等你来享
- 下一篇: 兴业银行信用卡汽车分期怎么办理?四个步骤