【问题标题】:execute one-line ssh command with variable from local environment使用来自本地环境的变量执行单行 ssh 命令
【发布时间】:2025-12-03 03:50:01
【问题描述】:

让我们假设在当前的 shell 中,我有一个变量。

$ echo $MY_VAR
$ 2

我想要的是将此变量的值传递给我通过 ssh 执行的命令的参数,例如:

ssh -i /ebs/keys/test root@some.ip '/some/command -<here_i_want_to_have_value_of_$MY_VAR_variable>'

谢谢!

【问题讨论】:

  • 双“是你的朋友。

标签: unix ssh


【解决方案1】:

假设你不能在整个命令周围使用双引号来 ssh,你可以像这样打破 $MY_VAR:

ssh -i /ebs/keys/test root@some.ip '/some/command -'"$MY_VAR"

如果 ssh 命令的其余部分不包含将在双引号内解释的标记,则可以将整个命令用双引号而不是单引号括起来。

【讨论】:

    【解决方案2】:

    在命令两边使用双引号:

    ssh -i /ebs/keys/test root@some.ip "/some/command $MY_VAR"
    

    本地 shell 会扩展双引号内的变量。

    【讨论】: