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

Ant*_*al' 4 unix ssh

让我假装,在当前的shell中我有一些变量

$ echo $MY_VAR
$ 2
Run Code Online (Sandbox Code Playgroud)

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

ssh -i /ebs/keys/test root@some.ip '/some/command -<here_i_want_to_have_value_of_$MY_VAR_variable>'
Run Code Online (Sandbox Code Playgroud)

谢谢!

Kur*_*man 9

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

ssh -i /ebs/keys/test root@some.ip '/some/command -'"$MY_VAR"
Run Code Online (Sandbox Code Playgroud)

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


Sjo*_*erd 5

在命令周围使用双引号:

ssh -i /ebs/keys/test root@some.ip "/some/command $MY_VAR"
Run Code Online (Sandbox Code Playgroud)

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