Я пытаюсь написать оператор if внутри скрипта / sh, используя переменную JENKINS param. Вот снимок одного из этапов
stage('Verifying image') {
agent {
node { label 'master' }
}
steps {
sh "docker images | grep ${params.wtss_version}"
script {
sh '''
#!/bin/bash
if (( $(docker images | grep "$\{params.wtss_version}" | wc -l)>0));then
echo "Found file"
else
echo "Did not find file"
fi
'''
}
}
}
Линия sh "docker images | grep ${params.wtss_version}"
, кажется, работает нормально. Но когда сборка достигает многострочного скрипта (внутри '' '.' ''), Он говорит:
[Pipeline] {
[Pipeline] sh
++ wc -l
++ grep '$/{params.wtss_version}'
++ docker images
+ (( 0>0 ))
+ echo 'Did not find file'
Did not find file
Я попробовал следующие варианты: -
if (( $(docker images | grep \"${params.wtss_version}\" | wc -l)>0));then
но это говорит
[Pipeline] sh
++ wc -l
/var/lib/jenkins/workspace/get_wtss_img_dockerhub@tmp/durable-b3815677/script.sh: line 3: ${params.wtss_version}: bad substitution
++ docker images
+ (( 0>0 ))