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

GitHub Actions run块设置的变量未在printenv中显示问题咨询

原因说明

该现象是Bash的默认特性,和GitHub Actions无关:

  • 直接使用变量名=值的语法定义的是shell本地变量,仅在当前shell上下文可访问,不会被加入进程的环境变量列表,因此打印系统环境变量的printenv命令无法读取到这类变量。
  • 你用echo能正常输出变量值,是因为echo是当前shell的内置命令,可以直接读取shell本地变量。

修复方案

仅需要当前run块内的命令能识别为环境变量

在变量定义前加export关键字,将本地变量提升为环境变量即可,修改后代码如下:

export INSTALL_DATE=$(date -d "`date +%Y%m01` -12 month" +%Y-%m-%d)
echo "Here is install date $INSTALL_DATE"
export IOS_GAME="${{ env.GAME }}_IOS_PROD"
export ANDROID_GAME="${{ env.GAME }}_ANDROID_PROD"
envsubst < get-data/training-data.sql
cat get-data/training-data.sql
printenv

修改后printenv就能正常输出这三个变量。

需要后续其他步骤也能使用这些变量

将变量写入GitHub Actions提供的$GITHUB_ENV环境文件即可,写法如下:

echo "INSTALL_DATE=$(date -d "`date +%Y%m01` -12 month" +%Y-%m-%d)" >> $GITHUB_ENV
echo "IOS_GAME=${{ env.GAME }}_IOS_PROD" >> $GITHUB_ENV
echo "ANDROID_GAME=${{ env.GAME }}_ANDROID_PROD" >> $GITHUB_ENV

写入完成后,后续所有步骤都可以通过${{ env.变量名 }}或者shell中直接调用$变量名读取对应值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:36:04