我有一个创建文件的部署脚本,它有点像这样:
#!/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;
}
...
如何通过从部署脚本创建结果来阻止它删除变量?
答案 0 :(得分:2)
我假设您在询问如何在输出文件中获取返回以包含$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