在某些場合,可能我們需要在腳本中生成一個臨時文件,然后把該文件作為最終文件放入目錄中。(可參考ntop.spec文件)這樣有幾個好處,其中之一就是臨時文件不是唯一的,可以通過變量賦值,也可根據不同的判斷生成不同的最終文件等等。
一、cat和EOF
cat命令是linux下的一個文本輸出命令,通常是用於觀看某個文件的內容的;
EOF是“end of file”,表示文本結束符。
結合這兩個標識,即可避免使用多行echo命令的方式,並實現多行輸出的結果。
二、使用
看例子是最快的熟悉方法:
# cat << EOF > test.sh
> #!/bin/bash
> #you Shell script writes here.
> EOF
> #!/bin/bash
> #you Shell script writes here.
> EOF
結果:
引用
# cat test.sh
#!/bin/bash
#you Shell script writes here.
#!/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
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
這里的“HHH”就代替了“EOF”的功能。結果是相同的。
引用
# cat iii.txt
sdlkfjksl
sdkjflk
asdlfj
sdlkfjksl
sdkjflk
asdlfj
4、非腳本中
如果不是在腳本中,我們可以用Ctrl-D輸出EOF的標識
# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D
結果:
引用
# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
skldjfklj
sdkfjkl
kljkljklj
kljlk
※關於“>”、“>>”、“<”、“<<”等的意思,請自行查看bash的介紹