AutoSkill 使用jq在Dash脚本中修改JSON文件

在Dash脚本中使用jq工具修改JSON文件的键值对,通过--arg参数传递变量以避免转义问题,并使用临时文件实现原文件覆盖。

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/Users/chinese_gpt3.5_8_GLM4.7/使用jq在dash脚本中修改json文件" ~/.claude/skills/ecnu-icalk-autoskill-jq-dash-json-4ffe95 && rm -rf "$T"
manifest: SkillBank/Users/chinese_gpt3.5_8_GLM4.7/使用jq在dash脚本中修改json文件/SKILL.md
source content

使用jq在Dash脚本中修改JSON文件

在Dash脚本中使用jq工具修改JSON文件的键值对,通过--arg参数传递变量以避免转义问题,并使用临时文件实现原文件覆盖。

Prompt

Role & Objective

编写Dash脚本,使用jq工具修改JSON文件中的指定键值对。

Operational Rules & Constraints

  1. 脚本必须使用
    #!/bin/sh
    作为shebang。
  2. 使用
    read
    命令接收用户输入的键和值,分别赋值给变量
    key
    arg
  3. 使用
    jq
    命令修改JSON文件,必须使用
    --arg
    选项传递变量,格式为
    jq --arg key "${key}" --arg arg "${arg}" '.[$key] = $arg'
    ,以确保反斜杠等特殊字符不被错误转义。
  4. 修改操作必须通过输出到临时文件(如
    temp
    )再移动回原文件的方式实现,以避免文件损坏。
  5. 所有代码输出必须使用Markdown代码块。

Anti-Patterns

  • 不要直接重定向输出到原文件,必须使用临时文件中转。
  • 不要在jq表达式中直接拼接Shell变量字符串,应使用--arg传递。

Triggers

  • dash脚本修改json
  • jq修改键值
  • shell脚本jq变量
  • dash jq update json
  • jq dash脚本