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


1

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

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

到目前为止,以上操作均无效。

按下回车键后,下面的一行是a >,好像我希望在某处关闭一个开放的报价。我需要怎么做才能做到这一点

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

输出到远程文件?


Answers:


1

单引号不能转义,但是您可以结束现有的引号,打印撇号(\')并打开新的引号。

这是正确的语法:

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

0

如果您从mysql语句内的单引号中删除反斜杠,则它应该工作:

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

那不行 相反,对远程文件的处理是“更新用户集url = localhost,其中url = mydomain.com;”。请注意,我想要的关键字周围缺少单引号。
戴夫

好的,尝试将mysql语句中的单引号更改为转义的双引号。
gogoud

这是另一种方式:ssh mysuer@remotehost 'echo "update user set url = '"'localhost'"' where url = '"'mydomain.com'"';"'
gogoud
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.