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

Github Actions如何跨步骤访问shell脚本设置的环境变量

跨步骤访问GitHub Actions中脚本写入的环境变量方法

你已经用了GitHub Actions官方推荐的$GITHUB_ENV做跨步骤变量传递,只需要补全逻辑漏洞、按规范读取即可:

  • 补全脚本的写入逻辑
    你当前的脚本只在发现漏洞的else分支写了GITHUB_ENV,无漏洞的if分支没有写入,会导致无漏洞场景下变量不存在。修正后的脚本片段:
    #!/usr/bin/env bash
    ...
    test_result_emoji=":boom:"
    critical_vulnerabilities_found="false"
    
    if [ $critical2 -eq 0 ] && [ $high2  -eq 0 ]; then
      test_result_emoji=":eight_spoked_asterisk:"
      # 补全无漏洞场景的变量写入
      echo "CRITICAL_VULNERABILITIES_FOUND=${critical_vulnerabilities_found}" >> $GITHUB_ENV
    else
      critical_vulnerabilities_found="true"
      echo "CRITICAL_VULNERABILITIES_FOUND=${critical_vulnerabilities_found}" >> $GITHUB_ENV  
    fi 
    ...
    
  • 后续步骤直接读取环境变量
    所有写入$GITHUB_ENV的变量,会被GitHub Actions自动注入到同Job下后续所有步骤的运行环境中,直接通过$变量名调用即可,对应步骤写法:
    - name: Developers
            run: |
             echo $CRITICAL_VULNERABILITIES_FOUND
    

常见异常排查

如果按上述操作还是拿不到值,检查两个配置:

  • 确认运行脚本的步骤和读取变量的步骤属于同一个Job,$GITHUB_ENV的作用域仅限单个Job,跨Job传递变量需要使用Job outputs配置
  • 确认脚本可以正常执行:如果脚本没有可执行权限,要么先执行chmod +x ./prerequisite.sh给权限,要么直接用bash ./prerequisite.sh的方式调用,避免脚本没跑起来导致写入逻辑没执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:03:23