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

如何消除GitHub Actions环境变量中的换行符?

修复GitHub Actions环境变量导致的ARN换行问题

问题原因

你用YAML的>折叠语法定义INFRA_ACCOUNT时,块内的换行和缩进会被保留为空白字符,最终导致INFRA_ACCOUNT的值末尾带有换行符,拼接ARN时就出现了换行拆分的情况。

解决方法

方法1:将JSON内联写成一行,移除折叠语法

直接把fromJson里的JSON结构压缩成一行,避免YAML块引入额外换行:

jobs:
  deploy_infra:
    name: Deploy Infra    
    env:
      INFRA_ACCOUNT: ${{ fromJson('{"dev": "12345", "preprd": "678234", "prd": "91056"}')[github.event.inputs.stage] }}
    steps:
      - name: Creating ARN
        shell: bash
        run: |
         echo "ARN is arn:aws:iam::${{ env.INFRA_ACCOUNT }}:role/aws-github-role"

方法2:用trim函数去除空白字符

如果想保留JSON的多行格式,在表达式中添加trim函数,自动去除值的首尾空白(包括换行):

jobs:
  deploy_infra:
    name: Deploy Infra    
    env:
      INFRA_ACCOUNT: ${{ trim(fromJson('{
              "dev": "12345",
              "preprd": "678234",
              "prd": "91056"
            }')[github.event.inputs.stage]) }}
    steps:
      - name: Creating ARN
        shell: bash
        run: |
         echo "ARN is arn:aws:iam::${{ env.INFRA_ACCOUNT }}:role/aws-github-role"

方法3:在Shell命令中去除换行

如果不想修改环境变量定义,也可以在run命令里用tr命令删除换行符:

jobs:
  deploy_infra:
    name: Deploy Infra    
    env:
      INFRA_ACCOUNT: >
        ${{ fromJson('{
              "dev": "12345",
              "preprd": "678234",
              "prd": "91056"
            }')[github.event.inputs.stage] }}
    steps:
      - name: Creating ARN
        shell: bash
        run: |
         echo "ARN is arn:aws:iam::${{ env.INFRA_ACCOUNT }}:role/aws-github-role" | tr -d '\n'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:40:51