您的位置:首页 > 运维架构 > Linux

[Linux]:使用cat命令和EOF标识输出多行文件

2011-09-25 14:43 555 查看
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。(可参考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

自己看了这个例子后,写给了个测试程序一并贴出:
1.
#test.sh
#!/bin/sh

cat << EOF > xiaozhao.txt

hello

zhao

xiao

EOF
#./test.sh
在当前目录下生成xiaozhao.txt文件。
# cat xiaozhao.txt

hello

zhao

xiao
2.修改test.sh 为
#!/bin/sh

cat << EOF

hello

zhao
xiao

EOF
#./test.sh
hello

zhao

xiao
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐