The*_*Guy 3 shell quoting cat here-document
我想将配置信息写入一个包含美元符号 ( $
)的特定文件。这似乎是一个问题。
这是我所做的:
$ cat >> /etc/nginx/nginx.conf <<EOF
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
## Detect when HTTPS is used
map $scheme $https {
default off;
https on;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# Load config files from the /etc/nginx/conf.d directory
# The default server is in conf.d/default.conf
include /etc/nginx/conf.d/*.conf;
}
EOF
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
报价EOF
:
$ var=foo
$ cat << EOF
> $var
> EOF
foo
$ cat << 'EOF'
> $var
> EOF
$var
Run Code Online (Sandbox Code Playgroud)
来自man bash
:
如果 in
word
中的任何字符被引用,则分隔符是 word 上引用删除的结果,并且 here-document 中的行不会被扩展。