выполнить однострочную команду ssh с переменной из локальной среды - PullRequest
4 голосов
/ 11 октября 2011

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

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

7 голосов
/ 11 октября 2011

Предполагая, что вы не можете использовать двойные кавычки вокруг всей команды для ssh, вы можете выделить только $ MY_VAR следующим образом:

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

Если остальная часть команды ssh не содержит токенов, которые будут интерпретироваться в двойных кавычках, вы можете заключить всю команду в двойные кавычки вместо одинарных.

4 голосов
/ 11 октября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...