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

Github Actions使用jq --arg时出现识别失败问题求助

解决Github Actions中jq--arg参数导致的127错误

问题根源

127错误看似是命令未找到,实际是你引用的secrets包含特殊字符(空格、引号、反斜杠等),直接插入命令行时被bash当作语法符号解析,破坏了jq命令的结构。你测试时硬编码值能运行,也印证了是secrets的特殊字符触发了语法错误。

解决方案

改用环境变量传递secrets,避免bash直接解析特殊字符,优化后的步骤代码如下:

- name: App Settings Variable Substitution
  shell: bash
  env:
    SQL_CONN: ${{ secrets.SQL_CONNECTION_STRING }}
    EMAIL_PASS: ${{ secrets.EMAIL_PASSWORD }}
  run: | 
     jq --arg my_secret "$SQL_CONN" --arg email_secret "$EMAIL_PASS" '.Config.SiteDb = $my_secret | .Config.EmailPassword = $email_secret' ${{env.DOTNET_ROOT}}/myapp/appsettings.json > newfile.json
     mv newfile.json ${{env.DOTNET_ROOT}}/myapp/appsettings.json

额外优化说明

  1. 去掉了多余的cat管道,直接让jq读取目标文件,提升执行效率
  2. 增加了mv命令,将修改后的配置文件替换回原路径,确保后续部署能用到更新后的配置

为什么另一个工作流正常?

另一个工作流对应的secrets未包含会触发bash语法错误的特殊字符,因此没有暴露该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:02:54