Как правило, когда у вас один файл создает другой, вы выполняете какие-то шаблоны. Хотя bash способен на это, вы можете рассмотреть другой инструмент. m4 - популярный инструмент, используемый в цепочке инструментов GNU. Для еще более простых шаблонов вы можете сделать что-то вроде следующего сценария Perl:
perl -pne BEGIN { open my $fh, $ENV{SERVER_PROPERTIES_FILE} or die $!; \
%hash = map { chomp; split /=/ } <$fh>; } s/\${(.*)}/$hash{$1} or die "missing $1"/eg' < "${SERVER_XML_FILE}
Если вам не нужен второй файл, вы можете выполнить большинство задач в скрипте bash, используя здесь документы и встроенное выполнение.