jenkins中shell脚本中使用构建参数化Groovy变量的四种方式
jenkins中shell脚本中使用构建参数化Groovy变量的四种方式:
以字符变量为例:

流水线代码:
pipeline {agent {//label "${server}"label "${28}"}stages {stage('Hello') {steps {echo 'Hello World'echo "${28}"echo "${character_argument}"echo "--------------------------"// 这个报错//echo ${character_argument} // 这个可以输出变量echo "${character_argument}"//# 下面这三个不可以,输出的是${character_argument}本身echo "\${character_argument}"echo '${character_argument}'echo '\${character_argument}'echo "--------------------------"}}stage('shell') {steps{script {sh"""pwd# shell 脚本中引用 Groovy变量的四种方式echo ${character_argument}echo "${character_argument}"echo "\${character_argument}"echo '${character_argument}'# 下面这个不可以,输出的是${character_argument}本身echo '\${character_argument}'"""} }}}
}
直接运行:

Console Output:
Started by user 昌显瑞
[Pipeline] Start of Pipeline
[Pipeline] node
Running on xxx.xxx.xx.xx in /home/jenkins/program/jenkins/workspace/xxxxxx_test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Hello)
[Pipeline] echo
Hello World
[Pipeline] echo
28
[Pipeline] echo
default_argument
[Pipeline] echo
--------------------------
[Pipeline] echo
default_argument
[Pipeline] echo
${character_argument}
[Pipeline] echo
${character_argument}
[Pipeline] echo
${character_argument}
[Pipeline] echo
--------------------------
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (shell)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ pwd
/home/jenkins/program/jenkins/workspace/middle_nMedia_test
+ echo default_argument
default_argument
+ echo default_argument
default_argument
+ echo default_argument
default_argument
+ echo default_argument
default_argument
+ echo ${character_argument}
${character_argument}
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
相关文章:
jenkins中shell脚本中使用构建参数化Groovy变量的四种方式
jenkins中shell脚本中使用构建参数化Groovy变量的四种方式: 以字符变量为例: 流水线代码: pipeline {agent {//label "${server}"label "${28}"}stages {stage(Hello) {steps {echo Hello Worldecho "${28}"echo "…...
Robot Operating System——ParameterEventHandler监控Parameters的增删改行为
大纲 创建订阅"/parameter_events"的Node监控自身Node内部Parameter监控自身Node外部Parameter监听所有Node的所有Parameter的变动执行效果总结 在《Robot Operating System——AsyncParametersClient监控Parameters的增删改行为》一文中,我们通过AsyncPa…...
计算机网络(Wrong Question)
一、计算机网络体系结构 1.1 计算机网络概述 D 注:计算机的三大主要功能是数据通信、资源共享、分布式处理。(负载均衡、提高可靠性) 注:几段链路就是几段流水。 C 注:记住一个基本计算公式:若n个分组&a…...
Docker+consul容器服务的更新与发现
1、Consul概述 (1)什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点…...
全网最详细!! Linux 安装、配置教程
一、下载安装包 首先去官网下载VMware最新版本,以及发行版CentOS -7,懒得下载的可以私信我,我给你发包 其中,CentOS(Community Enterprise Operating System)是一个基于Linux的开源操作系统,它是…...
cocos creator 3学习记录01——如何替换图片
一、动态加载本地图片 1、通过将图片关联到CCClass属性上来进行代码切换。 1、这种方法,需要提前在脚本文件中声明好代表图片的CCClass属性。 2、然后拖动图片资源,到脚本内声明好的属性上以进行关联。 3、然后通过程序,来进行切换展示。…...
【Android Compose】ListView效果
【Android Compose】ListView效果 1、Column、Row 和 Box2、LazyColumn和LazyRow3、Compose 中的状态4、ListView效果5、android-compose-codelabs Jetpack Compose 使用入门 Jetpack Compose 教程 Jetpack Compose 1、Column、Row 和 Box Compose 中的三个基本标准布局元素是 …...
【Pytorch实战教程】Pytorch中.detach()的详细介绍
detach() 是 PyTorch 中用于分离张量的计算图的一个方法。它在处理计算图时非常有用,尤其是在需要停止梯度传播的情况下。以下是 detach() 方法的详细介绍: 方法概述 detach() 方法返回一个新的张量,从当前计算图中分离出来,即返回的张量不会参与梯度计算。这在某些情况下…...
AR 眼镜之-充电动画定制-实现方案
目录 📂 前言 AR 眼镜系统版本 充电动画 1. 🔱 技术方案 1.1 方案介绍 1.2 实现方案 关机充电动画 亮屏/锁屏充电动画 2. 💠 关机充电动画 2.1 关机充电动画核心处理类与路径 2.2 实现细节 步骤一:1)定制 …...
AJAX-XMLHttpRequest 详解
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 前言 XMLHttpRequest 概述 主要用途 工作流程 示例代码 GET 请求示例 POST 请求示例 注意事项 工作…...
内容管理系统 Contentful 与 Baklib
对于希望管理其产品和服务的在线文档或知识库以支持其客户和员工的组织来说,市场上有太多的平台和工具。 遵循的做法之一是使用无头内容管理系统 (CMS)。 如果您是这样的组织之一,正在考虑使用无头 CMS - Contentful 之一来管理您的在线知识库࿰…...
[Mysql-视图和存储过程]
视图 视图是从一个或者几个基本表(或视图)导出的表。它与基 本表不同,是一个虚表。 创建使用视图 # 视图 -- 视图只能用来查询,不能做增删改 -- 创建视图 -- create view 视图名【view_xxx / v_xxx】 -- as 查询语句 create view…...
Linux下C++静态链接库的生成以及使用
目录 一.前言二.生成静态链接库三.使用静态链接库 一.前言 这篇文章简单讨论一下Linux下如何使用gcc/g生成和使用C静态链接库(.a文件)。 二.生成静态链接库 先看下目录结构 然后看下代码 //demo.h#ifndef DEMO_H #define DEMO_H#include<string&g…...
【8月EI会议推荐】第四届区块链技术与信息安全国际会议
一、会议信息 大会官网:http://www.bctis.nhttp://www.icbdsme.org/ 官方邮箱:icbctis126.com 组委会联系人:杨老师 19911536763 支持单位:中原工学院、西安工程大学、齐鲁工业大学(山东省科学院)、澳门…...
2024年【甘肃省安全员B证】考试资料及甘肃省安全员B证模拟试题
题库来源:安全生产模拟考试一点通公众号小程序 2024年甘肃省安全员B证考试资料为正在备考甘肃省安全员B证操作证的学员准备的理论考试专题,每个月更新的甘肃省安全员B证模拟试题祝您顺利通过甘肃省安全员B证考试。 1、【多选题】5kW以上电动机开关箱中电…...
结合el-upload上传组件,验证文件格式及大小
结合el-upload上传组件,验证文件格式及大小 效果如下: 代码如下: upgradeFirmwareInfo.vue页面 <template><div><el-dialog title"新增固件升级包" :visible.sync"dialogFormVisible"top"7vh&qu…...
配置php-fpm服务
nginx(unix domain socket方式) server {listen 80;#root /test/php/publiclocation / {#URL重写 例如隐藏index.phpif (!-f $request_filename) {rewrite ^(.*)$ /index.php?s/$1 last;break;}}location ~ [^/]\.php(/|$) {#try_files $uri 404;fastcgi_index index.php;…...
科普文:Linux系统安全加固指南
本指南仅关注安全性和隐私性,而不关注性能,可用性或其他内容。 列出的所有命令都将需要root特权。以“$”符号开头的单词表示一个变量,不同终端之间可能会有所不同。 选择正确的Linux发行版 选择一个好的Linux发行版有很多因素。 避免分发…...
MFC开发,自定义消息
在MFC开发中,主要核心机制就是消息机制。QT与之类似的机制就是信号与槽。QT中的信号与槽是非常容易自定义的,MFC也是如此,自定义也是比较方便,况且自定义消息或者控件在整个GUI图形化界面开发中也是非常重要的部分,上篇…...
如何在 SpringBoot 中优雅的做参数校验?
一、故事背景 关于参数合法性验证的重要性就不多说了,即使前端对参数做了基本验证,后端依然也需要进行验证,以防不合规的数据直接进入服务器,如果不对其进行拦截,严重的甚至会造成系统直接崩溃! 本文结合…...
告别枯燥表格!用Power BI的矩形树图,5分钟搞定你的销售利润可视化分析
商业数据可视化实战:用Power BI矩形树图5分钟呈现销售利润洞察 在每周的销售复盘会议上,你是否经常面对这样的困境:手头有一份密密麻麻的Excel表格,包含了各省市、各产品的销售利润数据,却难以快速向团队传达关键业务洞…...
终极简单指南:如何用Seraphine英雄联盟助手快速提升排位胜率
终极简单指南:如何用Seraphine英雄联盟助手快速提升排位胜率 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 想象一下这样的场景:排位赛开始前,你正手忙脚乱地查询对手战绩…...
内容创作团队如何借助Taotoken统一调度多个模型提升内容多样性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 内容创作团队如何借助Taotoken统一调度多个模型提升内容多样性 对于自媒体、内容运营或数字营销团队而言,持续产出高质…...
架构设计实战指南:在约束中做取舍的工程智慧
架构设计实战指南:在约束中做取舍的工程智慧 版本:V1.0 适合人群:开发工程师、架构师、技术负责人、CTO、技术出身的创业者写在前面:你是不是也遇到过这些问题? 如果你是开发工程师: 刚写完的代码ÿ…...
避开这3个坑,你的HMC7044时钟输出才稳定:从VCO选择到奇数分频实战
HMC7044时钟系统设计避坑指南:从VCO选型到分频配置的工程实践 在高速数字系统设计中,时钟信号的稳定性往往决定着整个系统的性能上限。作为业界广泛使用的高性能时钟发生器,HMC7044凭借其出色的抖动性能和灵活的配置选项,成为众多…...
基于CircuitPython与BLE构建多探头无线温度监测系统
1. 项目概述:一个无线温度监控的“瑞士军刀” 如果你和我一样,喜欢在周末慢烤一块牛排,或者沉迷于培养天然酵母做面包,那你一定理解同时盯着好几个温度计的烦恼。厨房里烟雾缭绕,烤箱里正烤着东西,发酵箱里…...
Arduino ESP32终极配置指南:5步解决环境搭建难题
Arduino ESP32终极配置指南:5步解决环境搭建难题 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 Arduino ESP32是专为ESP32系列芯片设计的开源开发板支持包&am…...
图解ConvTranspose1d:从计算图到代码实现的逆向思维
1. 从Conv1d到ConvTranspose1d的思维转换 第一次接触ConvTranspose1d时,我和大多数人一样困惑:为什么要把好好的卷积操作反过来计算?直到在语音合成项目中被迫深入使用后,才明白这种"逆向思维"的价值。想象你正在玩拼图…...
树莓派Pico上使用Blinka兼容层调用CircuitPython传感器库
1. 项目概述与核心价值如果你手头有一块树莓派 Pico,正在用 MicroPython 开发,但眼馋 CircuitPython 生态里那海量且维护良好的传感器驱动库,比如 Adafruit 官方出品的那些,那么你肯定想过:能不能直接在 MicroPython 里…...
Prompt-Builder:构建可复用提示词模板,提升大模型工程化效率
1. 项目概述:Prompt-Builder 是什么,以及为什么你需要它如果你和我一样,在过去一年里深度使用过各种大语言模型,那你一定经历过这样的时刻:面对一个复杂的任务,你精心构思的提示词(Prompt&#…...
