Передающие переменные в удаленной команде ssh

Я хочу смочь выполнить команду от своей машины с помощью ssh и пройти через переменную среды $BUILD_NUMBER

Вот то, что я пробую:

ssh pvt@192.168.1.133 '~/tools/myScript.pl $BUILD_NUMBER'

$BUILD_NUMBER установлен на машине, выполняющей ssh вызов и так как переменная не существует на удаленном хосте, это не становится взятым.

Как я передаю значение $BUILD_NUMBER ?

84
задан llllllllll 17 February 2018 в 08:01
поделиться

2 ответа

Если вы используете

ssh pvt@192.168.1.133 "~/tools/run_pvt.pl $BUILD_NUMBER"

вместо

ssh pvt@192.168.1.133 '~/tools/run_pvt.pl $BUILD_NUMBER'

, ваша оболочка будет интерполировать $ BUILD_NUMBER перед отправкой командной строки на удаленный хост.

161
ответ дан 24 November 2019 в 08:31
поделиться

Переменные в одинарных кавычках не оцениваются. Используйте двойные кавычки:

ssh pvt@192.168.1.133 "~/tools/run_pvt.pl $BUILD_NUMBER"

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

26
ответ дан 24 November 2019 в 08:31
поделиться