如何使用bash将多行添加到文件末尾?

时间:2016-01-21 21:29:02

标签: bash config cat

我想将此代码添加到文件的末尾:

DAEMON_OPTS="-a :80 \
            -T localhost:6082 \
            -f /etc/varnish/default.vcl \
            -S /etc/varnish/secret \
            -s malloc,256m"

如何在保持结构和斜线的同时执行此操作?

我尝试逐行使用echo,但没有成功:

  cat > /etc/default/varnish  <<- EOM
  DAEMON_OPTS="-a :80 \
            -T localhost:6082 \
            -f /etc/varnish/default.vcl \
            -S /etc/varnish/secret \
            -s malloc,256m"
  EOM

1 个答案:

答案 0 :(得分:2)

在here-doc标识符周围使用引号以避免 shell扩展

cat >> /etc/default/varnish <<-'EOM'
DAEMON_OPTS="-a :80 \                                                                                                                                   -T localhost:6082 \
            -f /etc/varnish/default.vcl \
            -S /etc/varnish/secret \
            -s malloc,256m"
EOM

根据man bash

如果单词中的任何字符引用,则分隔符是单词上的引号删除结果,以及        here-document没有扩展。