我正在使用 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'