使用本地环境中的变量执行单行ssh命令

时间:2011-10-11 12:28:00

标签: unix ssh

让我们假装,在当前的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>'

谢谢!

2 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:4)

在命令周围使用双引号:

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

本地shell将在双引号内扩展变量。