如何基于Jenkins控制台输出设置环境变量(从机执行Python脚本场景)
提取Jenkins构建输出并设置为环境变量
可以通过以下操作把Python脚本输出里的目标值(比如示例中的WAS03)提取出来并设置为环境变量:
- 修改「Build->Execute Shell」中的命令,捕获脚本输出并提取目标值:
cd tools/demo/ # 从Python脚本输出中提取需要的字符串 TARGET_VALUE=$(python3 test_client.py | grep -oP "Received b'\K[^']+") # 设为当前Shell会话的环境变量 export MY_ENV_VAR="$TARGET_VALUE" # 写入文件以便后续Jenkins步骤读取 echo "MY_ENV_VAR=$TARGET_VALUE" >> "$WORKSPACE/env.properties"
- (可选)如果需要在后续构建步骤中使用这个变量:
- 确保Jenkins已安装EnvInject Plugin(环境注入插件)
- 在构建步骤中添加「Inject environment variables」步骤,选择「Properties File Path」并填入
env.properties,之后就能用${MY_ENV_VAR}调用这个变量。
补充说明:
- 正则表达式
Received b'\K[^']+的作用是精准匹配Received b'之后到单引号之前的内容,只要输出格式一致,不管具体值是什么都能提取。 - 如果Python脚本输出只有目标行,也可以用
sed简化处理:TARGET_VALUE=$(python3 test_client.py | sed "s/Received b'\([^']*\)'/\1/")
内容的提问来源于stack exchange,提问作者Manoj Kumar
相关产品推荐
相关产品推荐

