linux命令 EOF


在shell腳本中,通常將EOF與 << 結合使用,表示后續的輸入作為子命令或子Shell的輸入,直到遇到EOF為止,再返回到主Shell。

EOF只是一個分界符,當然也可以用abcde替換。
當shell遇到<<時,它知道下一個詞是一個分界符。在該分界符以后的內容都被當作輸入,直到shell又看到該分界符(位於單獨的一行)。
此分界符可以是所定義的任何字符串,其實,不一定要用EOF,只要是“內容段”中沒有出現的字符串,都可以用來替代EOF,完全可以換成abcde之類的字符串,只是一個起始和結束的標志罷了。

1,command<<EOF
(內容)
EOF
例如:
 

代碼示例:
#!/bin/bash
#Filename:do.sh
su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
sleep 5
su - oracle -c 
lsnrctl start

說明:
將“內容段”整個作為命令的輸入。
用su命令讀取整段命令,並逐行執行。

 

2,特殊用法:
: << COMMENTBLOCK
   shell腳本代碼段
COMMENTBLOCK
用來注釋整段腳本代碼。 : 是shell中的空語句。
 

echo start
:<<COMMENTBLOCK
echo
echo "this is a test"
echo
COMMENTBLOCK
echo end

這段腳本執行時,中間部分不會被執行:
 

代碼示例:
[root@newserver shell]# sh eof.sh
start
end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM