
Estou usando um shell bash e tentando descobrir a maneira correta de escrever o seguinte:
ssh mysuer@remotehost 'echo "update user set url = \'localhost\' where url = \'mydomain.com\';" >> /tmp/db.sql'
Até agora o acima não está funcionando.
Depois de pressionar enter, a linha a seguir é >
como se esperasse que eu fechasse uma cotação aberta em algum lugar. O que preciso fazer para que isso
update user set url = 'localhost' where url = 'mydomain.com';
é a saída para o arquivo remoto?
Responder1
Aspas simples não podem ser escapadas, mas você pode encerrar a existente, imprimir apóstrofo ( \'
) e abrir a nova.
Aqui está a sintaxe correta:
ssh user@host 'echo "update user set url = '\''localhost'\'' where url = '\''mydomain.com'\'';" >> /tmp/db.sql'
Responder2
Deve funcionar se você remover as barras invertidas das aspas simples dentro da instrução mysql:
ssh mysuer@remotehost 'echo "update user set url = 'localhost' where url = 'mydomain.com';" >> /tmp/db.sql'