[英]jq cast result into bash array
在我尝试使用bash解析来自curl的JSON响应的旁边,我现在决定尝试使用jq。 我已经检查了文档,但无法找到迭代元素并“执行”操作的方法。
这是我要实现的想法,将jq的结果转换为数组,(不起作用)
__json=$($omd_response | ~/local-workspace/bash/jq -r '[.]')
for x in "${__json[@]}"
do
echo "-metadata" $x
done
任何其他想法都非常感谢。 谢谢
这个:
declare -a things
things=($(jq tostring myfile.json) )
for x in "${things[@]}"; do
echo "-metadata" "$x"
done
几乎可以工作。 它在空白处分割内容。
这有效:
declare -a things
OIFS=$IFS
IFS= things=($(jq -r 'tojson|tostring' myfile.json) )
IFS=$OIFS
for x in "${things[@]}"; do
echo "-metadata" "$x"
done
确实,我们需要一个支持JSON的外壳……类似于ksh93的复合变量,但是与JSON兼容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.