выполнить однострочную команду ssh с переменной из локальной среды

#unix #ssh

#unix #ssh

Вопрос:

Давайте представим, что в текущей оболочке у меня есть переменная.

 $ 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>'
  

Спасибо!

Комментарии:

1. Double «здесь ваш друг.

Ответ №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"
  

Локальная оболочка расширит переменную в двойных кавычках.