Невозможно запустить сценарий оболочки внутри конвейера Jenkins - PullRequest
0 голосов
/ 15 мая 2018

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

Попробуйте 1.

node('buildnode') {

def value = "Myvalue"

def key = "Mykey"

sh '''

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

'''

}

выход:

++ printf '%-50s ' ''
+ DATA=' 

Попробуйте 2:

Пробовал с sh "" "

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

" " "

вывод: :

недопустимый символ тела строки после знака доллара; решение: либо экранировать буквальный знак доллара "\$5", либо заключить в скобки выражение значения "${5}"

Может кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 15 мая 2018

Это должно работать.

node('buildnode') {
    def value = "Myvalue" 
    def key = "Mykey"

    sh """
    DATA=\$(printf "%-50s \"${key}\" \"${value}\"")
    echo "\$DATA"
    """
}

Вам также нужно экранировать $ при вызове нового subshell в """ """

DATA=$(printf "%-50s \"${key}\" \"${value}\"")
...