Xeo*_*oss 29 linux bash heredoc
我正在使用 bash 脚本,试图阻止它尝试替换我的 heredoc 中的变量。如何将heredoc设置为A)转义变量名称而不是解析它们或B)返回整个字符串不变?
cat > /etc/nginx/sites-available/default_php <<END
server {
listen 80 default;
server_name _;
root /var/www/$host; <--- $host is a problem child
}
END
Run Code Online (Sandbox Code Playgroud)
照原样,当我完成将它注入文件时,我只剩下这个:
server {
listen 80 default;
server_name _;
root /var/www/;
}
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 38
从bash(1)手册页:
如果word中的任何字符被引用,则 分隔符是word上引用删除的结果,并且 here-document 中的行不会被扩展。
cat > /etc/nginx/sites-available/default_php <<"END"
Run Code Online (Sandbox Code Playgroud)
Hal*_*aar 35
只需一个反斜杠:
cat > /tmp/boeboe <<END
server {
listen 80 default;
server_name _;
root /var/www/\$host';
}
END
Run Code Online (Sandbox Code Playgroud)