You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins执行shell调用polyspace-access时如何仅提取RUN_ID数值

提取Polyspace命令输出中RUN_ID数值的方法

直接用反引号捕获命令全量输出时,会把命令执行过程中打印的所有连接日志、提示信息都存入变量,只需要在原命令后追加文本过滤逻辑,即可精准提取RUN_ID对应的数字,以下两种写法都可直接在Jenkins「执行shell」步骤中使用:

  • 方法1:awk匹配提取(最简洁)
    定位输出中包含RUN_ID的行,直接取该行最后一个字段(也就是RUN_ID对应的数值):

    export RunID=$(polyspace-access -list-project XX/YY -host MyHost -protocol http -login MyUsername -encrypted-password MyPassword | awk '/RUN_ID/{print $NF}')
    echo "This is my RunID: $RunID"
    
  • 方法2:sed正则提取(兼容性更强)
    通过正则精准匹配RUN_ID后的数字段,哪怕该行后续还有其他输出内容也不会提取错误:

    export RunID=$(polyspace-access -list-project XX/YY -host MyHost -protocol http -login MyUsername -encrypted-password MyPassword | sed -n 's/.*RUN_ID \([0-9]\+\).*/\1/p')
    echo "This is my RunID: $RunID"
    

补充说明:

  1. 建议在shell脚本中用$()代替反引号`做命令替换,可读性更好,嵌套复杂逻辑时也不容易出现转义错误。
  2. 如果执行过程中的连接类日志是输出到标准错误流的,可以在polyspace-access命令后追加2>/dev/null丢弃错误流日志,避免无关内容干扰匹配,示例:
export RunID=$(polyspace-access -list-project XX/YY -host MyHost -protocol http -login MyUsername -encrypted-password MyPassword 2>/dev/null | awk '/RUN_ID/{print $NF}')

内容的提问来源于stack exchange,提问作者user3122648

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 23:48:51