0%

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

在脚本中可以用cat>.tmp

四、忽略内容中变量

开头的 EOF 加上引号即可,即:

cat <<'EOF'
1
2
3
$HOME
4
5
EOF

结果:

1
2
3
$HOME
4
5
  • 本文作者: 6x
  • 本文链接: https://6xyun.cn/article/63
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!