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

MacOS Shell创建含特殊字符JSON文件的问题求助

解决Shell创建含特殊引号的JSON文件问题

针对你遇到的JSON包含单引号和大量双引号导致Shell命令语法冲突的问题,这里提供几种简单可行的解决方案:

方法1:使用Here-Document(推荐)

这是最直观且无需转义任何引号的方法,直接将JSON内容原样写入文件:

cat > k.json << 'EOF'
{
  "attributes": {},
  "children": [
    {
      "attributes": {
        "ignoreBoundsFiltering": "false"
      },
      "children": [
        {
          "attributes": {
            "text": "",
            "accessibilityText" : "Azione sull'account richiesta"
          }
        }
      ]
    }
  ]
}
EOF

注意这里的'EOF'加单引号是为了防止Shell解析JSON中的特殊字符(比如$符号),如果你的JSON里没有这类字符,也可以不加单引号。

方法2:分段单引号包裹+转义单引号

如果一定要用echo命令,可以将包含单引号的部分拆分,用'"'"'来插入单引号(相当于先闭合单引号,输出一个单引号,再重新开启单引号):

echo '{
  "attributes": {},
  "children": [
    {
      "attributes": {
        "ignoreBoundsFiltering": "false"
      },
      "children": [
        {
          "attributes": {
            "text": "",
            "accessibilityText" : "Azione sull'"'"'account richiesta"
          }
        }
      ]
    }
  ]
}' > k.json

这里的sull'"'"'account会被Shell解析为sull'account,完美还原JSON中的单引号。

方法3:使用printf命令

和echo逻辑类似,用分段单引号处理单引号,适合习惯用printf的场景:

printf '{
  "attributes": {},
  "children": [
    {
      "attributes": {
        "ignoreBoundsFiltering": "false"
      },
      "children": [
        {
          "attributes": {
            "text": "",
            "accessibilityText" : "Azione sull'\''account richiesta"
          }
        }
      ]
    }
  ]
}' > k.json

这里用\'来插入单引号,效果和方法2一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:33:24