Comillas dobles dentro de comillas en bash
Necesito pasar $ var_path al script bash dentro de comillas simples y luego ejecutar el comando en el host remoto. Sé que las comillas simples no permiten pasar variables, así que intenté con comillas dobles, pero obtuve un error en sed. Suponga que esto sucede porque su plantilla también usa ".
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'
entonces con ""
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"
Errores de sed
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
Si $ var_path se usa directamente sin un script de sustitución, funciona como se esperaba.