bash: подстановка переменных в строку с одинарными и двойными кавычками
Пишу скрипт на bash. Скрипт получает откуда-то извне текстовые строки и подставляет их в заранее прописанный текст. Проблема в том, что текст может содержать и одинарные, и двойные кавычки.
Я знаю, что строку можно задавать двойными кавычками - тогда в неё можно включать переменные - и одинарными - тогда подстановка переменных не работает:
$ FOO=123
$ echo "aaa $FOO bbb"
aaa 123 bbb
$ echo 'aaa $FOO bbb'
aaa $FOO bbb
А как быть, если строка содержит оба вида кавычек, и надо чтобы в ней работала подстановка переменных?
Можно, конечно, экранировать кавычки внутри строки, но это неудобно - легко запутаться, что и где надо экранировать, а что и где - нет.