在我的Pipeline Jenkins作业中,我有一个名为BUILD_TYPE
:
的Choice参数
我想检查用户选择了哪个值:
sh'''#!/bin/bash
if [ "${params.BUILD_TYPE}" = "Debug" ]; then
Debug = true
Release = false
else
Debug = false
Release = true
fi
'''
字符串
但得到
line 2: ${params.BUILD_TYPE}: bad substitution
型
我也试
[[ "${params.BUILD_TYPE}" == "Debug" ]];
型
同样的结果
这段代码可能有什么问题?我应该在Jenkins中使用什么语法?
2条答案
按热度按时间y0u0uwnf1#
我主要使用bat命令,但据我所知,你不能在“”(三重单引号)之间使用
${var}
。要使用它,你需要使用“(三重双引号)。只要改变这一点,你就应该能够在sh命令中获得${params.BUILD_TYPE}
的值。编辑:你的整个sh脚本应该在“中。所以它最后应该看起来像这样
字符串
soat7uwm2#
这段代码的一切都错了:
1.管道的目的不就是为了避免编写shell代码吗?
1.这不是有效的shell代码。首先,环境变量名不能包含“."。它看起来像shell和java或其他东西的混合体。我相信Jenkins会在普通变量中传递参数,如$BUILD_TYPE,但我没有做太多的管道,所以你必须检查一下。
1.在shell代码中,名称和右值之间不能有空格,必须是“”=true
1.这段shell代码什么也不做。它设置了一些变量,然后退出,所以什么也没有实现。在shell中设置的变量不会在其他任何地方使用。
我认为你需要回到第一原则,读一些关于这一点的书。