Wie gebe ich diese Zeile in eine Remote-Datei aus?

Wie gebe ich diese Zeile in eine Remote-Datei aus?

Ich verwende eine Bash-Shell und versuche herauszufinden, wie ich Folgendes richtig schreibe:

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

Bisher funktioniert das oben genannte nicht.

Nach dem Drücken der Eingabetaste ist die folgende Zeile so, >als ob ich irgendwo ein offenes Angebot schließen würde. Was muss ich tun, damit dies

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

wird in die Remote-Datei ausgegeben?

Antwort1

Einfache Anführungszeichen können nicht maskiert werden, aber Sie können das vorhandene beenden, ein Apostroph ( \') drucken und das neue öffnen.

Hier ist die richtige Syntax:

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

Antwort2

Es sollte funktionieren, wenn Sie die Backslashes aus den einfachen Anführungszeichen in der MySQL-Anweisung entfernen:

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

verwandte Informationen