Anton Koval'
Anton Koval'

Reputation: 5063

execute one-line ssh command with variable from local environment

Let's pretend that in the current shell, I have a variable.

$ echo $MY_VAR
$ 2

What I want is to pass the value of this variable to an argument of a command I'm executing through ssh, like:

ssh -i /ebs/keys/test [email protected] '/some/command -<here_i_want_to_have_value_of_$MY_VAR_variable>'

Thanks!

Upvotes: 6

Views: 36927

Answers (2)

Kurt Stutsman
Kurt Stutsman

Reputation: 4034

Assuming you cannot use double quotes around the entire command to ssh, you could break just $MY_VAR out like this:

ssh -i /ebs/keys/test [email protected] '/some/command -'"$MY_VAR"

If the rest of the command to ssh does not contain tokens that will be interpreted within double quotes, you can enclose the entire command in double quotes instead of single.

Upvotes: 12

Sjoerd
Sjoerd

Reputation: 75629

Use double quotes around the command:

ssh -i /ebs/keys/test [email protected] "/some/command $MY_VAR"

The local shell will expand the variable within double quotes.

Upvotes: 5

Related Questions