Jenkins(管道)Boolean参数Powershell混淆
我有一个参数化的Jenkins管道脚本,在那里我通过布尔参数“ Ismoduleupdate”。
当我在管道脚本中使用此参数时,我会得到令人困惑的结果。 我的脚本:
Write-Host ">>> isModuleUpdate as String: $Env:isModuleUpdate"
Write-Host ">>> isModuleUpdate as Variable: " $Env:isModuleUpdate
if ($Env:isModuleUpdate) {
Write-Host ">>> ModuleUpdate is checked!"
}
当我运行脚本时,结果是:
>>> isModuleUpdate as String: false
>>> isModuleUpdate as Variable: false
>>> ModuleUpdate is checked!
最性感的方法是什么?
I have a parametrized Jenkins Pipeline Script, where I pass a Boolean Parameter "isModuleUpdate".
When I use this parameter in my Pipeline Script I get confusing results.
My Script:
Write-Host ">>> isModuleUpdate as String: $Env:isModuleUpdate"
Write-Host ">>> isModuleUpdate as Variable: " $Env:isModuleUpdate
if ($Env:isModuleUpdate) {
Write-Host ">>> ModuleUpdate is checked!"
}
When I run my Script, the Result is:
>>> isModuleUpdate as String: false
>>> isModuleUpdate as Variable: false
>>> ModuleUpdate is checked!
What is the sexiest way to check this variable corectly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自:
您的
如果
语句评估true
,因为您的字符串变量不是空的。换句话说,它包含字符串false
,而不是布尔值。进行适当的字符串比较:From about_Environment_Variables:
Your
if
statement evaluates totrue
, because your string variable is not empty. In other words, it contains the stringfalse
and not a boolean value. Do a proper string comparison instead:我记得在PowerShell中检查布尔值的问题。最终,
-eq $ true
工作:I recall having issues with checking booleans in PowerShell as well. Ultimately,
-eq $true
worked: