从另一台服务器远程运行 Shell 命令时出现错误

从另一台服务器远程运行 Shell 命令时出现错误

我有 2 台服务器,分别是 ubuntu 服务器 A 和服务器 B

我在服务器 B 的 shell 上运行来自服务器 A 的 shell 命令,但似乎我需要进行一些转义才能使确切的命令到达服务器 B。服务器 B 上的命令没有 & 以及其后的任何内容。有没有什么办法可以确保确切的命令到达服务器 B:

我在服务器A上执行此操作

ssh root@serverB 'processthis -a example.com/?a=1,2,3&m=a,b,c'

需要到达服务器B的实际命令是:

processthis -a example.com/?a=1,2,3&m=a,b,c

但到达那里的命令是

processthis -a example.com/?a=1,2,3

谢谢

答案1

尝试在 processthis 的参数两边加上双引号。

ssh root@serverB'processthis-a“example.com/?a=1,2,3&m=a,b,c”'

答案2

您应该使用 \ 来转义 &,因为 bash 会处理它。尝试以下操作:

sh root@serverB'processthis-a example.com/?a=1,2,3\&m=a,b,c'

相关内容