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

etcdctl执行put命令后JSON引号被截断的问题求助

解决etcdctl写入JSON时引号丢失的问题

核心原因

问题出在shell命令行的转义解析:外层用双引号包裹时,内部的\"会被shell优先解析为普通引号,若转义逻辑有误,最终传递给etcdctl的内容会丢失引号。只需跳过复杂转义,让shell原样保留JSON内部的引号即可解决。

可行解决方案

1. 用单引号包裹完整JSON

shell中,单引号内部的所有字符会被原样保留,不会被转义或解析,这是最直接的方法:

etcdctl put /var/dir '{"key1": "value1", "key2": "value2"}'

执行后用etcdctl get /var/dir查询,就能看到完整带引号的JSON内容。

2. 使用Here-Doc传递内容

如果JSON内容较长或需要换行,用Here-Doc更清晰,注意EOF前后的单引号,确保shell不解析内部内容:

etcdctl put /var/dir << 'EOF'
{"key1": "value1", "key2": "value2"}
EOF

3. 从文件读取JSON内容

把JSON写入单独文件(比如config.json),再通过重定向让etcdctl读取文件内容:

# 先写入文件
echo '{"key1": "value1", "key2": "value2"}' > config.json
# 再写入etcd
etcdctl put /var/dir < config.json

这种方式适合复杂JSON结构,彻底避免命令行转义的麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:25:29