jenkins - Jenkinsfile:环境变量:${env.varname} 和裸 $varname 之间的区别?
问题描述
在 Jenkinsfile 中,我们可以通过varname
两种方式使用环境变量(比如 ):${env.varname}
和 bare $varname
。它们之间有什么区别?有什么规则可以正确区分它们吗?
为了了解它们是如何工作的,我运行了一个具有以下阶段的声明性管道作业:
stages {
stage('Jenkins test') {
environment {
FOO = "jenkins!"
FOO_ENV = "hello ${env.FOO}"
FOO_BARE = "hello ${FOO}"
}
steps {
echo "Message: ${env.FOO}"
echo "env: ${env.FOO_ENV}"
echo "bare: ${env.FOO_BARE}"
sh "echo Message: $FOO"
sh "echo env: $FOO_ENV"
sh "echo bare: $FOO_BARE"
}
}
}
并发现两者FOO_ENV
和命令FOO_BARE
都是相同的:echo
sh
Message: jenkins!
env: hello jenkins!
bare: hello jenkins!
解决方案
推荐阅读
- python - 使用素数将数独查找从 O(n) 更改为 O(1),但在代码中没有看到显着的加速
- jenkins - 詹金斯奴隶经常与主人断开连接
- python - BeautifulSoup Webcrapping错误/没有代码运行
- javascript - React - componentWillReceiveProps 中的 SetTimeout
- jenkins - 使用 kubernetes-cd 插件从 Jenkins 管道部署到 Kubernetes EKS 集群时出错
- excel - 超过第一个句号的参数的自动完成/下拉框
- android - 将 Flutter 项目迁移到 AndroidX
- sockets - 如何灵活调整套接字数据长度?
- php - 避免使用 PHP 进行 URL 转换
- json - Firebase 托管重定向除一个文件之外的所有内容