我需要从 bash 中的 json 字符串中提取一些信息。json字符串就像
{"ok":true,"id":"af1aa5cef5dc0c86fd734ff3d42a8188","rev":"1-f28941b049d7d356ae113fa061ddfe1f"}
(来自 couchdb 插入的输出)
我只想抓住 id,所以我试图
$IFS=;,\"
json=tail -n1 output
echo $json
\\ { ok true id af1aa5cef5dc0c86fd734ff3d42a8188 rev 1-f28941b049d7d356ae113fa061ddfe1f }
所以,到目前为止,一切看起来都很好而且很花哨,但是,如果我尝试访问一个元素,${json[0]} 会返回整个字符串,而所有其他 ${json[n]} 都是空的。
另一方面,
for i in $json;
do echo $i
done
适用于 $json 的每个元素...
我一定是做错了什么,但是什么?
(是的,我确实知道这种对 json 字符串的“解析”会让我遇到稍微复杂一点的问题——但对于这些字符串,它应该可以正常工作——我想)