Como faço para enviar esta linha para um arquivo remoto?

Como faço para enviar esta linha para um arquivo remoto?

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'

informação relacionada