以下命令按预期工作:
ssh [email protected] "ssh [email protected] "mysqlshow""
但下面的情况却不是这样:
ssh [email protected] "ssh [email protected] "mysql test -Bse"show variables"""
以下部分在命令提示符下有效,但是当我在执行它之前执行 ssh 时会失败,如上所示。
mysql test -Bse"show variables"
答案1
您不能像这样嵌套双引号。您要么将其转义,要么改变您的方法。
尝试这个:
ssh [email protected] "ssh [email protected] \"mysql test -Bse'show variables'\""
答案2
命令中有多个双引号。尝试将其转义ssh [email protected] "ssh [email protected] "mysql test -Bse"show variables"""
ssh [email protected] "ssh [email protected] \"mysql test -Bse\\\"show variables\\\"\""
答案3
或者,你可以
mysql test -Bse"show variables"
放入服务器上的脚本中,然后只需通过 SSH 调用该脚本,就像您在第一个示例中所展示的那样。如果执行此操作,请确保正确设置可执行位,以允许用户运行它。