linux的eof是自訂終止符,其全名是「END Of File」;eof不是固定的,可以隨意設定別名,在linux中按「ctrl-d」就代表eof;eof一般會配合cat,能夠輸出多行文字。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
linux的eof是什麼意思?
shell基礎EOF的用法
EOF是(END Of File)的縮寫,表示自訂終止符。既然自訂,那麼EOF就不是固定的,可以隨意設定別名,在linux按ctrl-d 就代表EOF。
EOF一般會配合cat能夠多行文字輸出。
其用法如下:
#<
#.... ##輸入內容
#結束也可以自訂,例如自訂:
< .... ABC ##透過cat配合重定向能夠產生檔案並追加操作,在它之前先熟悉幾個特殊符號 < :輸入重定向 >:輸出重定向 >> :輸出重定向,進行追加,不會覆寫先前內容 < ;<:標準輸入來自命令列的一對分隔號碼的中間內容 範例1: [root@ren5 ~]# cat < > ; hello > EOF #hello 我們知道cat的操作物件是文件,但是範例1中cat的操作物件不是文件,而是用戶輸入;那我們可以這樣理解範例1:先在檔案file中輸入“Hello”,再用cat file輸出其中的內容。 也就是說我們可以用一個檔案來取代"<< EOF EOF"。 反過來說,如果操作指令中的檔案是輸入對象,也可以用"<< EOF EOF"來替代的。 範例2: #[root@ren5 ~]# cat 1.txt abc [root@ren5 ~]# cat < > 123 > 456 > 678 #> LOL > EOF [root@ren5 ~]# cat 1.txt 123 456 678 LOL 「<< EOF EOF」的作用是在命令執行過程中使用者自訂輸入,它類似於起到一個臨時檔案的作用,只是比使用文件更方便靈活。 兩者都是取得 stdin,並在EOF處結束stdin,輸出stdout。 在我們使用cat < 如果重定向的運算子是<<-,那麼分界符( EOF)所在行的開頭部分的製表符(Tab)都會被移除。 這可以解決由於腳本中的自然縮排產生的製表符。 範例1#: #[root@ren5 ~]# cat 2.sh# #!/bin/bash cat < 你好,EOF! EOF [root@ren5 ~]# sh 2.sh ##你好,EOF! [root@ren5 ~]# sh 2.sh 2.sh:行4 : 警告:立即文件在第 2 行被文件結束符號分隔 (需要 `EOF') 你好,EOF! EOF #如果結束分解符號EOF前有製錶符號或空格,則EOF不會被當作結束分界符,只會繼續被當作stdin來輸入。 範例2#: [root@ren5 ~]# cat 2.sh ##!/bin/bash cat << -EOF 你好,EOF! EOF #[root@ren5 ~]# sh 2.sh #你好,EOF! 雖然最後的EOF前面有多個製表符和空格,但還是會被當作結束分界符,表示stdin的結束。 推薦學習:《linux影片教學》# 以上是linux的eof是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!