我有一个创建文件的部署脚本,它有点像:
#!/bin/bash
...
cat << EOF > nginx/test.conf
server {
listen 80;
server_name domain.com;
return 301 http://www.domain.com$request_uri;
}
EOF
...
但是,当部署脚本运行后创建文件时,它会输出以下内容:
nginx/test.conf
...
server {
listen 80;
server_name domain.com;
return 301 http://www.domain.com;
}
...
如何阻止它删除从部署脚本创建的变量?
我想你在问如何在输出文件中获得包含$request_uri
的返回。现在,当你使用cat
时,shell正试图将$request_uri
扩展到它的值,该值可能是空的,所以它似乎消失了。如果你想让结果包含这个字符串,你需要转义$
,这样它就不会试图将其扩展为
cat << EOF > nginx/test.conf
server {
listen 80;
server_name domain.com;
return 301 http://www.domain.com$request_uri;
}
EOF