GitHub Actions中echo输出github.event失败原因咨询
GitHub Actions打印github.event报错原因及解决方法
报错原因
直接执行echo ${{ toJSON(github.event) }}时,GitHub Actions会先将模板表达式展开为完整的JSON字符串,但bash会解析字符串中的特殊字符(如大括号{}、冒号:、空格),把它们当作shell语法的一部分处理。比如JSON里的"after": "xxx"结构,会被bash拆分后误判after::为待执行命令,从而抛出command not found错误。
另外,不使用toJSON时,github.event作为对象类型,GitHub Actions默认只会输出Object,无法展示具体内容。
解决方法
方案1:用单引号包裹输出内容
通过单引号让bash将整个JSON字符串视为整体,避免解析内部特殊字符:
- name: check context shell: bash run: echo '${{ toJSON(github.event) }}'
方案2:使用printf替代echo
printf对特殊字符的处理更稳定,能避免echo的兼容性问题:
- name: check context shell: bash run: printf '%s\n' '${{ toJSON(github.event) }}'
方案3:结合jq格式化输出(可选)
如果需要更易读的格式化JSON,可以搭配jq工具:
- name: check context shell: bash run: echo '${{ toJSON(github.event) }}' | jq .
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

