Как передать мой параметр при попытке выполнить команды SSH в HUDSON - PullRequest
3 голосов
/ 15 апреля 2011

Я хочу, чтобы моя работа выполняла некоторые команды на других серверах.Я создал новое (параметризованное) задание, которое просто выполняет команды оболочки.

Я не могу понять, как заставить мой параметр сборки передаваться в командную строку пульта.

ssh myservername 'echo ${MY_PARAMETER}'

Глядя на вывод своей консоли, я вижу:

+ ssh myservername echo ${MY_PARAMETER}

То, что я хочу видеть, это:

+ ssh myservername echo MyValueFromTheBuild

Должен быть способ сделать это возможным.*

Ответы [ 3 ]

4 голосов
/ 15 апреля 2011

Вот решение:

bash -c "ssh myservername 'echo ${MY_PARAMETER}'"

Обратите внимание, что здесь используется значение переменной на локальном компьютере. Это не приведет к значению переменной на удаленном хосте. Из контекста звучит так, будто первое - это то, что вы хотите.

Как всегда, будьте осторожны, чтобы не оценить входные данные, над которыми у вас нет полного контроля.

2 голосов
/ 15 апреля 2011

Я использую это на нашем сервере Jenkins, и он прекрасно работает для меня.

ssh myservername "echo $PROJECTNAME"

0 голосов
/ 15 апреля 2011

My думаю, будет пытаться использовать одну из следующих синтаксических форм:

ssh myservername 'echo $MY_PARAMETER'
ssh myservername 'echo ${ENV, var="MY_PARAMETER"}'
...