cat EOF追加与覆盖

2011年10月25日 发表评论 阅读评论

当需要将多行文件输入到文本时,如果每条都使用echo 到文件时是比较繁琐的,这种情况下可以使用cat EOF进行多行文件的覆盖或追加输入。

一、覆盖

这里有两种格式可以使用

1、格式一

#!/bin/bash
cat << EOF > /root/test.txt
Hello!
My site is www.361way.com
My site is www.91it.org
Test for cat and EOF!
EOF

2、格式二

#!/bin/bash
cat > /root/test.txt <<EOF
Hello!
My site is www.361way.com
My site is www.91it.org
Test for cat and EOF!
EOF

两种写法区别无法是要写入的文件放在中间或最后的问题,至于选哪种看个人喜好吧。

二、追加

覆盖的写法基本和追加一样,不同的是单重定向号变成双重定向号

1、格式一

#!/bin/bash
cat << EOF >> /root/test.txt
Hello!
My site is www.361way.com
My site is www.91it.org
Test for cat and EOF!
EOF

2、格式二

#!/bin/bash
cat >> /root/test.txt <<EOF
Hello!
My site is www.361way.com
My site is www.91it.org
Test for cat and EOF!
EOF

需要注意的是,不论是覆盖还是追加,在涉及到变量操作时是需要进行转义的,例如:

#!/bin/bash
cat <<EOF >> /root/a.txt
PATH=\$PATH:\$HOME/bin
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/10.2.0/db_1
export ORACLE_SID=yqpt
export PATH=\$PATH:\$ORACLE_HOME/bin
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
EOF




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: shell脚本学习 标签:
  1. small_snail
    2019年9月22日14:51 | #1

    感谢条理清楚地讲解cat命令!其他地方很难找到如此清晰完整的答案

    话说博主是从哪里了解的cat这样比较细的知识点呢,现在我只能从网上找零碎的博文,不光可信度不很高,更多的好多时候找不到什么内容

  2. admin
    2019年9月23日11:26 | #2

    无论从哪里看到的东西,多做实践才能验证。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.