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'