>[оверквотинг удален]
>Пример шаблона:
>
> myvar = ${myvar1}
> this is a \" quotes test \"
> $(
> if [ ! -z ${myvar2} ]; then
> echo "myvar2 is set and its value
>= ${myvar2}"
> fi
> ) ---8<---
#!/bin/bash
config_file='test.conf'
myvar1='variable 1'
cat <<TPLT > ${config_file}
myvar = ${myvar1}
this is a " quotes test "
$(
if [ ! -z ${myvar2} ]; then
echo "myvar2 is set and its value = ${myvar2}"
fi
)
TPLT
--->8---
1. Одним файлом: шаблон как here-document в скрипте.
2. Кавычки не нужно экранировать. Нужно экранировать '$', если на выходе нужен сам этот символ.
3. У неортодоксальных нерелигиозных нефанатиков, освоивших установку $чего-то-там-про-пакеты, bash бывает и _не_ на ОС GNU/Linux (впрочем, как и не на ядре linux). Впрочем, безусловно, такие исключения только подтверждают правило, ога.