¿Cómo envío esta línea a un archivo remoto?

¿Cómo envío esta línea a un archivo remoto?

Estoy usando un shell bash e intento encontrar la forma correcta de escribir lo siguiente:

ssh mysuer@remotehost 'echo "update user set url = \'localhost\' where url = \'mydomain.com\';" >> /tmp/db.sql'

Hasta ahora lo anterior no funciona.

Después de presionar Enter, la siguiente línea es >como si esperara que cerrara una cotización abierta en algún lugar. ¿Qué necesito hacer para que esto

update user set url = 'localhost' where url = 'mydomain.com';

¿Se envía al archivo remoto?

Respuesta1

No se pueden omitir las comillas simples, pero puede finalizar la existente, imprimir el apóstrofe ( \') y abrir la nueva.

Aquí está la sintaxis correcta:

ssh user@host 'echo "update user set url = '\''localhost'\'' where url = '\''mydomain.com'\'';" >> /tmp/db.sql'

Respuesta2

Debería funcionar si eliminas las barras invertidas de las comillas simples dentro de la declaración mysql:

ssh mysuer@remotehost 'echo "update user set url = 'localhost' where url = 'mydomain.com';" >> /tmp/db.sql'

información relacionada