Двойные кавычки внутри кавычек в bash
Мне нужно передать $ var_path для bash-скрипта внутри одинарных кавычек, а затем выполнить commnd на удаленном хосте. Я знаю, что одинарные кавычки не позволяют передавать переменные, поэтому пробовал двойные кавычки, но получал ошибку в sed. Предположим, что это происходит, потому что его шаблон использует ".
var="Test text"
var_path="/etc/file.txt"
echo "$var"|ssh root@$host 'cat - > /tmp/test.tmp && sed -n "/]/{:a;n;/}/b;p;ba}" $var_path > /tmp/new.conf.tmp'
так с ""
var="Test text"
var_path="/etc/file.txt"
echo "$var"|ssh root@$host "cat - > /tmp/test.tmp && sed -n "/]/{:a;n;/}/b;p;ba}" $var_path > /tmp/new.conf.tmp"
Ошибки от Сед
sed: -e expression #1, char 0: unmatched `{'
./script.sh: line 4: n: command not found
./script.sh: line 4: /}/b: No such file or directory
./script.sh: line 4: p: command not found
Если $ var_path используется напрямую, без подстановки скрипт работает как положено.