Jenkins中sh函数的用法

在Jenkins的Pipeline中,sh函数的用法

用法一

单个命令字符串包括使用,示例如下:

groovy 复制代码
sh 'echo "Hello, Jenkins!"'

用法二

多个命令字符串包括命令列表使用,示例如下:

groovy 复制代码
sh '''
echo "Step 1"
echo "Step 2"
echo "Step 3"
'''

这种用法允许你在多行中写入Shell命令。

用法三

类似于函数调用的使用方法,示例如下:

groovy 复制代码
def myVariable = sh(script: 'echo "Hello, Jenkins!"', returnStdout: true).trim()

这种用法将Shell脚本的输出捕获到Jenkins Pipeline中的一个变量中。

入参及其含义:

  • script: 这是要执行的Shell脚本命令。它可以是单个命令字符串,也可以是包含多个命令的多行字符串。例如:script: 'echo "Hello, Jenkins!"'script: 'echo "Step 1"\necho "Step 2"\necho "Step 3"'

  • returnStatus (可选): 如果设置为true,Jenkins将返回Shell脚本的退出状态而不是默认的标准输出。通常,如果脚本成功执行,它将返回0。默认值为false。

  • returnStdout (可选): 如果设置为true,Jenkins将捕获Shell脚本的标准输出并将其返回。这样可以将脚本输出存储在一个变量中。默认值为false。

  • returnStderr (可选): 如果设置为true,Jenkins将捕获Shell脚本的标准错误输出并将其返回。默认值为false。

  • outpustFile (可选): 允许将Shell脚本的输出写入指定的文件。例如:outputFile: 'output.txt'

  • label: 可以用来指定在Jenkins构建日志中显示的自定义标签。例如:

    groovy 复制代码
    sh label: 'My Custom Label', script: 'echo "Hello, Jenkins!"'

注意:当使用多行字符串(triple-single-quoted或triple-double-quoted)时,Jenkins会按原样执行其中的内容,包括空格和缩进,因此请小心使用。

实际版本用法

jenkins中实际版本的用法参考,可以在jenkins中如下截图中查看,截图如下:

  1. 首先建一个pipeline类型的job。
  2. 然后在job中点击如下截图位置:
  3. 该页面操作如截图:

    特别注意:有些参数只能二选一,或者有冲突,这个页面也会提示的

其他用法,参考:

  1. jenkins pipeline中获取shell命令的标准输出或者状态
  2. https://stackoverflow.com/questions/36547680/how-to-do-i-get-the-output-of-a-shell-command-executed-using-into-a-variable-fro
  3. https://issues.jenkins-ci.org/browse/JENKINS-26133
  4. https://stackoverflow.com/questions/36956977/how-to-execute-a-command-in-a-jenkins-2-0-pipeline-job-and-then-return-the-stdou
相关推荐
云间月131420 小时前
Elasticsearch 数据怎么看?部署 Kibana,从索引查询到可视化图表
大数据·elasticsearch·jenkins
略略略咯咯1 天前
jenkins
运维·servlet·jenkins
蒲锘1 天前
Devops项目笔记阶段 7:Jenkins CI/CD 自动化部署
笔记·jenkins·devops
醉颜凉2 天前
Elasticsearch 相关性评分核心解密:tie_breaker 参数作用原理与实战调优全解析
大数据·elasticsearch·jenkins
Behaviour2 天前
Unity游戏之Jenkins的安装部署应用
游戏·unity·jenkins
醉颜凉3 天前
Elasticsearch 核心基石:倒排索引全解析(原理+结构+流程图+实战)
elasticsearch·jenkins·流程图
醉颜凉3 天前
Elasticsearch底层原理:文档更新与删除完整执行流程深度剖析
大数据·elasticsearch·jenkins
潘正翔3 天前
k8s高级_调度器Deployment
linux·运维·云原生·容器·kubernetes·jenkins·devops
潘正翔3 天前
jenkins构建cicd流水线
运维·服务器·ci/cd·容器·自动化·jenkins·cicd
qq_161111273 天前
Jenkins+Python自动化测试持续集成详细教程
自动化测试·python·jenkins·教程·持续集成