轉(zhuǎn)自:CSDN博客
1、EOF
Shell中通常將EOF與?<<?結(jié)合使用,表示后續(xù)的輸入作為子命令或子Shell的輸入兆蕉,直到遇到EOF為止中燥,再返回到主調(diào)Shell寇甸。
可以把EOF替換成其他東西,意思是把內(nèi)容當作標準輸入傳給程序疗涉。
回顧一下<?<的用法拿霉。當shell看到<?<的時候,它就會知道下一個詞是一個分界符博敬。在該分界符以后的內(nèi)容都被當作輸入友浸,直到shell又看到該分界符(位于單獨的一行)。這個分界符可以是你所定義的任何字符串偏窝。
例子:自動登錄mysql(root:root,passwd:123456),查詢test庫收恢,test1表里的user=aa的記錄。
復制代碼代碼如下:
#!/bin/sh
mysql?-uroot?-p123456?<
use?test;
select?*?from?testaa?while?a=10000;?###1000?not?usr?single?quote?mark,because?a?is?int
#?type,only?char?type?need?single?quote?mark.
exit
EOF
特殊用法:
:?<<?COMMENTBLOCK
shell腳本代碼段
COMMENTBLOCK
用來注釋整段腳本代碼祭往。?:?是shell中的空語句伦意。
echo?start
:<
echo
echo?"this?is?a?test"
echo
COMMENTBLOCK
echo?end
這段腳本執(zhí)行時,中間部分不會被執(zhí)行:
復制代碼代碼示例:
[root@newserver?shell]#?sh?eof.sh
start
end
2硼补、cat和eof結(jié)合使用具有追加功能
使用Cat和EOF多行輸入
cat?>>?/root/test.txt?<
abcdef
hello?word?!
FFFFFFFFFFFFFFFFFFFFFFF
EOF
以上的腳本命令是驮肉,在a.txt文件后面加上三行代碼。
參考:
http://www.crazycen.com/linux/1433.html
http://zhidao.baidu.com/link?url=rVKjt2ln6T1xZ-ZiSQLLebrainXqTeF6IImMAEbvL_T9zUYInioOY-oWDY38QD2IUeEwT8fFfeGphoIXg890SK
http://www.jquerycn.cn/a_9335
http://www.jbxue.com/article/2660.html