如何将此行输出到远程文件?

如何将此行输出到远程文件?

我正在使用 bash shell 并尝试找出正确的方法来编写以下内容:

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

到目前为止,上述操作尚未起作用。

按下回车键后,下面一行似乎>在等待我关闭某个未关闭的引号。我需要做什么才能让这个

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'

相关内容