linux - Jenkins - Linux 脚本 - 从 XML 中提取变量
问题描述
我有一个如下所示的 XML 文件(XML 响应总是相同的)。我需要提取sessionToken值并在 Jenkins 文件中使用它。
XML 文件 -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XmlResponse><httpCode>200</httpCode><httpStatus>OK</httpStatus><action>None</action><messageLevel>INFO</messageLevel><objectsList>{"sessionToken":"1234567890"}</objectsList><results/></XmlResponse>
这是我在 Jenkins 中尝试过但没有用的代码 -
def var=sh([returnStdout: true, script: '`cat output.xml | cut -f10 -d"\\""`'])
println ("var is" + var)
这是我在 Jenkins 控制台日志中看到的输出 -
++cat output.xml
+ 1234567890 -----> session Token is extracted in this step but for some reason it assume this as command
/workspace/script.sh: line 1: 1234567890: command not found
解决方案
回答
根据您运行的 Jenkins 版本,管道可能是个问题。请尝试以下解决方案
def var=sh([returnStdout: true, script:'/bin/bash -c \'`cat output.xml | cut -f10 -d"\\""`\''])
推荐阅读
- swift - 无法使用 Vapor-Fluent 在 Swift 中跨 Web 服务实例持久化数据
- c# - C# - 静态初始化程序的顺序问题
- dart - 如何将 flutter_local_notifications 添加到我的应用程序中?
- sql - SQL Server:在查询中获取按日期安全计数 - 有没有更简单的方法来编写它?
- javascript - Javascript - 按前 2 个空格分割字符串
- r - 我正在尝试使用 Ubuntu 18.04 在 R 中安装 openssl 包但没有成功
- rust - 如何在 rust 中连接静态数组?
- mysql - mysql - 如何获取父表中缺少的所有关系外键?
- db2 - SQLCODE -981,SQLERRMC:00C12219
- powershell - 将脚本指向最新文件