Передача переменной в удаленной SSH-команде в Jenkins-job

У меня есть небольшое тестовое задание:

touch 22.txt
echo "wwe" > 22.txt
test=$(echo ${BUILD_NUMBER})
echo $test
ssh jenkins@srv1 "mkdir D:\myfolder\$test"
ssh jenkins@srv1 "dir D:\myfolder\"

BUILD_NUMBER означает номер сборки задания в Jenkins
. Что я имею на выходе:

Running as SYSTEM
[EnvInject] - Loading node environment variables.
Building remotely on MAC-slave in workspace /Users/Admin/workspace/testmacosx
[testmacosx] $ /bin/sh -xe /var/folders/rq/4q3q1m2959q6zpgxghhrvdnw0000gn/T/jenkins1551827609931995498.sh
+ touch 22.txt
+ echo wwe
++ echo 5
+ test=5
+ echo 5
5
+ ssh jenkins@srv1 'mkdir D:\myfolder$test'
/var/folders/rq/4q3q1m2959q6zpgxghhrvdnw0000gn/T/jenkins1551827609931995498.sh: line 7: unexpected EOF while looking for matching `"'
Build step 'Execute shell' marked build as failure
Finished: FAILURE

Как, вы видели, он не видит эту переменную $test в удаленной ssh-команде. Как я могу передать эту переменную? Помогите мне, пожалуйста.

0
задан 24 May 2019 в 18:03
1 ответ

Проблема решена. Через это: ssh jenkins @ srv1 "mkdir D: \ myfolder \\ $ test" Итак, мы должны добавить \ перед нашей переменной

0
ответ дан 23 November 2019 в 23:44

Теги

Похожие вопросы