Как вывести эту строку в удаленный файл?

Как вывести эту строку в удаленный файл?

Я использую оболочку bash и пытаюсь понять, как правильно написать следующее:

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

Пока что вышеизложенное не работает.

После нажатия Enter следующая строка выглядит >так, как будто она ожидает, что я где-то закрою открытую кавычку. Что мне нужно сделать, чтобы это

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

выводится в удаленный файл?

решение1

Одинарные кавычки экранировать нельзя, но можно завершить существующие, напечатать апостроф ( \') и открыть новые.

Вот правильный синтаксис:

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

решение2

Это должно сработать, если вы удалите обратные косые черты из одинарных кавычек внутри оператора mysql:

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

Связанный контент