如何使用bash将多行添加到文件末尾?
问题描述:
我想这个代码添加到文件的末尾:如何使用bash将多行添加到文件末尾?
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
答
使用引号在这里-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中的行不会被展开。
不希望''''“要结束文件”? –
谢谢,确实应该使用'>>'来附加到文件。 – anubhava
如果我申请这样的: #/斌/庆典 猫>>在/ etc /默认/清漆>> - 'EOM' DAEMON_OPTS =“ - 一:80 \ -T本地主机:6082 \ -f /etc/varnish/default.vcl \ -S/etc/varnish/secret \ -s malloc,256m“ EOM 我可以看到,终端挂起没有任何错误,直到我终止它。 – funguy