【问题标题】:gcloud ssh and commands with parametersgcloud ssh 和带参数的命令
【发布时间】:2015-10-26 22:27:03
【问题描述】:

我在尝试使用 gcloud 通过 ssh 执行命令时遇到问题。当我从我的 Mac 执行时,这非常有效:

gcloud compute ssh instanceName --command="cd /folder; ls"

但是,当我尝试在其中一个虚拟机中从 Ubuntu 运行它时,我收到以下错误:

ERROR: (gcloud.compute.ssh) unrecognized arguments: /folder; ls

听起来像是用空格分隔命令。我尝试了不同的选项,例如使用单引号、使用 vars 等,但对我没有任何效果。

正确的做法是什么?

【问题讨论】:

    标签: google-compute-engine gcloud


    【解决方案1】:

    我发现了问题。如果您按照以下说明从 Debian 软件包安装:

    https://cloud.google.com/sdk/#debubu

    它将安装旧版本的 gcloud。使用这些说明安装后:

    https://cloud.google.com/sdk/#nix

    我获得了最新版本 (0.9.83),并且能够毫无问题地执行命令。

    【讨论】:

    • 这在 Windows 上仍然完全损坏
    【解决方案2】:

    对我来说,它是通过将单引号更改为双引号来解决的。

    我变了

    gcloud compute ssh --zone us-east1-b instance-1 --command 'echo hello'
    

    gcloud compute ssh --zone us-east1-b instance-1 --command "echo hello"
    

    【讨论】:

    • 也适用于 Windows