jenkins - 詹金斯 - 如果比较 HOUR 的语句不起作用
问题描述
我正在尝试根据时间在 Jenkinsfile 中添加一个“验证”阶段。如果晚于16,则需要验证,否则不需要。
if 语句不起作用
在这里我声明变量
HOUR=sh(returnStdout: true, script: 'date +"%H"').trim().toInteger()
这是舞台
stage('validation') {
steps {
script {
if ( HOUR > 16 ) {
echo "Validation is required, time now is $HOUR"
}
else {
echo "No validation required, time now is $HOUR"
}
}
}
}
这是输出
Validation is required, time now is 9
变量 HOUR 的值是正确的,但是 if 语句不能正常工作
提前致谢
解决方案
首先尝试使用以下${xx}
语法引用您的变量:
if ( ${HOUR} > 16 ) {
实际上,这将在要运行的环境步骤中定义,如${env.HOUR}
,如此处所示。
OP Judy1989在评论中确认您可以使用HOUR
,但分两个步骤:
HOUR=sh(returnStdout: true, script: 'date +"%H"').trim()
...
if ( HOUR.toInteger() > 16 )
您可以在此问题中看到此类延迟使用的示例。
推荐阅读
- r - 当轴标题中有上标时,如何调整绘图区域以使其与其他图形相等?
- netlogo - 连接一定半径内的海龟
- android - 通话时开启扬声器,Android 10及以上版本无法使用
- angular - 如何在角度 10 中使用异步管道检索数据后执行一些操作
- xamarin.forms - 如何在以 Xamarin 形式流式传输 rtsp 时拍摄快照
- ubuntu - 如何从 systemd 服务从同一台 Ubuntu 机器启动新的 XSession
- ruby - rspec:如何期望该页面具有所需的 html
- guidewire - 索赔中心:在 FNOL 向导期间,当被保险人是公司且报告人是人时,MainContact 值不会持续存在
- ios - 在 Xamarin.iOS 中使用嵌入式框架验证应用程序时出现问题
- .net-core - 在 .Net Core 中按项目对 Swagger 进行分组