在 ssh 之后执行命令

在 ssh 之后执行命令

以下命令按预期工作:

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 调用该脚本,就像您在第一个示例中所展示的那样。如果执行此操作,请确保正确设置可执行位,以允许用户运行它。

相关内容