从shell调用参数值jenkins



我希望能够从shell调用参数值,并在我的shell脚本中使用它。我的首要任务是不为参数中选择的每个值使用If,而是选择活动选项。这可能是因为我对这个错误有意见吗?

第4行:${params.prime_server}:替换错误

#!/usr/bin/env groovy

properties([
parameters([

choice(
name: 'prime_server',
choices: ['','choice1', 'choice2', 'choice3','choice4'],
description: 'Name choice'
),
choice(
name: 'old_server',
choices: ['','choice1', 'choice2', 'choice3','choice4'],
description: 'Name choice'
)
])
]) 

stage('stage1') {
environment{

}
node("master") {

sh '''

echo -e "-------------------------------Calling the params value into shell----------------------------"
echo  "${params.prime_server}"
echo  "${params.old_server}"
oldserver="${params.old_server}"
primeserver="${params.prime_server}"
echo  "${oldserver}"
echo  "${primeserver}"

sed -i -e "0,/${oldserver}/ s/${oldserver}/${primeserver}/g" test.xml


'''.stripIndent()


}
}

是否可以调用此参数值并将其分配给shell 中的变量

带有单引号的Shell块不考虑变量,因此必须使用双引号。示例:
sh """
<your code>
"""

如果希望Groovy进行字符串插值,则应该使用双引号。所以像下面这样改变你的外壳块。

sh """

echo -e "-------------------------------Calling the params value into shell----------------------------"
echo  "${params.prime_server}"
echo  "${params.old_server}"
oldserver="${params.old_server}"
primeserver="${params.prime_server}"
echo  "${oldserver}"
echo  "${primeserver}"
sed -i -e "0,/${oldserver}/ s/${oldserver}/${primeserver}/g" test.xml

""".stripIndent()

最新更新