我需要从 Windows 命令提示符调用 ssh 命令,该命令将在远程 Linux 计算机上执行命令。该命令接受两个字符串参数,其中一个参数可能是多行的。基本上,我的调用看起来像这样:
ssh 用户@服务器 命令 参数1 参数2
当参数中有空格时,这个方法会失败。我尝试使用 ' 来转义参数,但 Windows 框会删除这些参数,然后 Linux 会破坏这些参数。我也尝试过 ",Windows 框可以正常使用,但 Linux 会忽略它们。我同时使用这两个的版本如下
ssh 用户@服务器命令“'参数1'”“'参数2'”
有点用,但现在我遇到了内联引号的问题。有没有标准方法可以让 Linux 和 Windows 都理解空格、单引号和双引号?
答案1
我认为以下方法会非常有效:
ssh user@server "command \"parameter 1\" \"parameter 2\""
当然,您仍然面临需要对参数内的双引号进行双重转义的问题。