Shell腳本——cat/EOF輸出多行


在某些場合,可能我們需要在腳本中生成一個臨時文件,然后把該文件作為最終文件放入目錄中。(可參考ntop.spec文件)這樣有幾個好處,其中之一就是臨時文件不是唯一的,可以通過變量賦值,也可根據不同的判斷生成不同的最終文件等等。

一、cat和EOF

cat命令是linux下的一個文本輸出命令,通常是用於觀看某個文件的內容的;
EOF是“end of file”,表示文本結束符。
結合這兩個標識,即可避免使用多行echo命令的方式,並實現多行輸出的結果。

二、使用

看例子是最快的熟悉方法:

# cat << EOF > test.sh
> #!/bin/bash
> #you Shell script writes here.
> EOF


結果:

引用
# cat test.sh
#!/bin/bash
#you Shell script writes here.


可以看到,test.sh的內容就是cat生成的內容。

三、其他寫法
1、追加文件

# cat << EOF >> test.sh


2、換一種寫法

# cat > test.sh << EOF


3、EOF只是標識,不是固定的

# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH


這里的“HHH”就代替了“EOF”的功能。結果是相同的。

引用
# cat iii.txt
sdlkfjksl
sdkjflk
asdlfj


4、非腳本中
如果不是在腳本中,我們可以用Ctrl-D輸出EOF的標識

# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D


結果:

引用
# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk


※關於“>”、“>>”、“<”、“<<”等的意思,請自行查看bash的介紹


免責聲明!

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



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