Невозможно запустить сценарий оболочки внутри конвейера Jenkins
Я могу запустить следующий сценарий оболочки, но не могу запустить из кода конвейера Jenkins.
Попробуйте 1.
node('buildnode') {
def value = "Myvalue"
def key = "Mykey"
sh '''
DATA=$(printf "%-50s \"$key\"" "$value")
echo "$DATA"
'''
}
выход:
++ printf '%-50s ' ''
+ DATA='
Попробуйте 2:
Пробовал с ш " " "
DATA=$(printf "%-50s \"$key\"" "$value")
echo "$DATA"
" " "
вывод:
недопустимый символ тела строки после знака доллара; решение: либо избежать буквального знака доллара
"\$5"
или заключите в скобки выражение значения"${5}"
Кто-нибудь может мне помочь?
1 ответ
Решение
Это должно работать.
node('buildnode') {
def value = "Myvalue"
def key = "Mykey"
sh """
DATA=\$(printf "%-50s \"${key}\" \"${value}\"")
echo "\$DATA"
"""
}
Вы также должны экранировать $ при вызове нового subshell в разделе """ """
DATA=$(printf "%-50s \"${key}\" \"${value}\"")