具有卷曲功能的Am从Webapi中获取数据。 Web API返回格式为["Name1","Name2","Name3","Name4","Name5"]
的Json字符串。我需要将数据提取到bash脚本中的数组中,以便可以使用“名称”在其余代码中循环。
我要求的格式类似于arr[0]=Name1 ,...., arr[n]=Namen
答案 0 :(得分:1)
对于没有换行符的元素,您可以执行以下操作:
$ readarray -t arr < <(jq -r '.[]' <<< '["Name1","Name2"]')
$ declare -p arr
declare -a arr=([0]="Name1" [1]="Name2")
阅读此jq
request for NUL-delimited output,这也将使元素带有换行符:
while IFS= read -rd '' item; do
arr+=("$item")
done < <(jq -j '.[]|(. + "\u0000")' <<< '["Name1","Na\nme2"]')
# with bash 4.4 or later
$ readarray -d '' arr < <(jq -j '.[]|(. + "\u0000")' <<< '["Name1","Na\nme2"]')
$ declare -p arr
declare -a arr=([0]="Name1" [1]=$'Na\nme2')