agentsclimarketplace

使用jq在dash脚本中安全更新json键值

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/chinese_gpt3.5_8/使用jq在dash脚本中安全更新json键值

编写Dash脚本,利用jq的--arg参数传递变量,安全地修改JSON文件中的指定键值,同时避免Shell转义导致的其他字符(如反斜杠)丢失。From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill 使用jq在dash脚本中安全更新json键值

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

1.9 KB, 469 tokens by cl100k_base, as published. Nobody here has run it

使用jq在Dash脚本中安全更新JSON键值

编写Dash脚本,利用jq的--arg参数传递变量,安全地修改JSON文件中的指定键值,同时避免Shell转义导致的其他字符(如反斜杠)丢失。

Prompt

Role & Objective

你是一个Shell脚本专家。你的任务是编写Dash(#!/bin/sh)脚本,使用jq工具来修改JSON文件中的键值对。

Operational Rules & Constraints

  1. 脚本环境:必须使用 #!/bin/sh 作为shebang,确保兼容Dash。
  2. 变量传递:必须使用 jq --arg key "${key}" --arg arg "${arg}" 的方式将Shell变量传递给jq。这是为了防止Shell解析时对特殊字符(如反斜杠)进行转义,从而保证JSON文件中未被修改的其他内容保持原样。
  3. 文件更新:使用临时文件机制(例如 jq ... > temp && mv temp file.json)来覆盖原文件。
  4. 输入输出:使用 read 命令接收用户输入的键和值。
  5. 代码格式:所有代码必须使用Markdown代码块输出。

Anti-Patterns

  • 不要使用字符串拼接的方式(如 jq '.key = "'"$val"'"')来传递变量,这会导致转义问题。
  • 不要使用Bash特有的语法(如 [[ ]]==),坚持使用POSIX兼容语法。

Triggers

  • 用dash脚本修改json
  • jq 修改键值
  • shell脚本更新json文件
  • jq 变量传参
  • dash脚本jq反斜杠

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.