Use \ para escapar do $ .
return 301 https://\$server_name\$request_uri;
Eu preciso escrever um texto com várias linhas em um arquivo:
cat <<EOF > file
server {
listen 80;
server_name $sub.$domain.com www.$sub.$domain.com;
return 301 https://$server_name$request_uri;
}
EOF
Para mim, o problema é que $server_name$request_uri deve ser tratado como uma string, enquanto domain e sub devem ser uma variável.
Então, eu preciso escapar desse $ de alguma forma.