我有一个Jenkinsfile,它导出了一个环境变量,如下所示
environment {
USERNAME = sh(returnStdout: true, script: 'set +x && echo $username').trim()
PASSWORD = sh(returnStdout: true, script: 'set +x && echo $password').trim()
}
字符串
为什么不直接做echo $username
和echo $password
呢?我不太熟悉bash脚本,所以我不理解后面的推理
1条答案
按热度按时间m2xkgtsf1#
1 sh(returnStdout:true,script:'...')
查询或执行一些bash命令并获取字符串形式的值以将其保存到变量中是一个有用的特性
#2 set +x
在jenkins和其他类似平台的脚本中附加
set +x
的主要原因是为了避免打印脚本或sh。你的脚本很小,所以日志不会打扰眼睛。但是脚本很大,日志太吵了。管道
在这个示例中,我使用whoami来模拟一些bash命令
字符串
不设置+x
的数据
set +x
USERNAME = sh(returnStdout: true, script: 'set +x && echo $(whoami)').trim()
个的
这是在我的积压打开它一个拉请求添加一个参数来帮助。目前没有办法隐藏脚本不设置+x:How do I turn off command echo in Jenkins pipeline groovy scripts