Neste caso, o Bash não sabe onde o nome da variável termina. Tente assim:
/opt/nginx/conf.d/com_${domain}_${sub}.conf
Como eu uso variáveis em um nome de arquivo corretamente? Isso é o que eu estou fazendo, mas parece o sublinhado faz alguns problemas:
domain="example"
sub="foo"
if [ -f /opt/nginx/conf.d/com_$domain_$sub.conf ]
cat <<EOF > /opt/nginx/conf.d/com_$domain_$sub.conf
some multiline
content
EOF
fi
Tags bash shell-script