【CentOS】EOF使用
生活随笔
收集整理的這篇文章主要介紹了
【CentOS】EOF使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- 本文的腳本在CentOS7中已測試
介紹
EOF是END Of File的縮寫,表示自定義終止符。在linux按ctrl-d就代表EOF。
Shell中通常將EOF與 << 結合使用,表示后續的輸入作為子命令或子Shell的輸入,直到遇到EOF為止,再返回到主調Shell。
用途
編寫自動執行的腳本時很有用。比如,自動執行的mysql腳本,自動執行的sftp、ftp腳本等。
注意事項
- 格式為:
比如這樣
shell> ftp<<EOF exit EOF- 第1個EOF的后一行開始 到 第2個EOF的前一行結束,之間為EOFd內容可以自動輸入。
- 第1個EOF的同一行中,在EOF后面還可以有其它的命令,且不作為EOF內容。
- 第2個EOF必須自己獨占一行,且EOF前后不能有任何東西。
- EOF不是關鍵字,可以隨便改,比如可以改成HELLO、!、…
- <<是關鍵字,不能修改
- EOF不是萬能的。當命令不支持EOF時,那就需要換用另外的辦法。比如mysql的密碼輸入,就不支持EOF(mysql的高版本中,已經不能把密碼作為mysql命令的參數了)。
示例1
模擬輸入ftp命令。人工輸入時,是這樣的
shell> ftp # 這里已經切換到了ftp命令下 ftp> exit shell>如果需要shell腳本在ftp命令下輸入exit命令,則需要搭配EOF使用。如下:
shell> ftp<<EOF exit EOF shell>上面這段兒的執行效果與上上面的那段兒執行效果一致。但,上面這段已經省去了人工輸入exit命令。
示例2
將內容Hello World寫到a.txt中:
shell> cat <<EOF >a.txt Hello World EOF shell> cat a.txt Hello World示例3
還可以使用命令替換:
shell> cat <<EOF >a.txt today is `date` i am in dir `pwd` I can read numbers `for i in $(seq 1 10) do echo $i; done` EOF shell> cat a.txt today is Tue Mar 16 10:44:44 CST 2021 i am in dir /root I can read numbers 1 2 3 4 5 6 7 8 9 10參考
Linux shell 中()‘‘,() ` `,()‘‘,{},$[] $(()),[ ] (( )) [[ ]]作用與區別
bash之命令替換(command substitution)
Linux中的文件分界符EOF
linux下EOF寫法梳理
Shell中重定向<<EOF注意事項
總結
以上是生活随笔為你收集整理的【CentOS】EOF使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 野韭菜花的功效与作用、禁忌和食用方法
- 下一篇: 【maven插件】maven-resou