使用 GET API 调用结果填充地图

populating a map with GET API call results

我有一个脚本,其中 returns 一些我想放入地图的 uuid。但是,看起来当我 运行 这个脚本时,它只用整个 uuid 列表中的第一个值填充我的地图。我究竟做错了什么? hydra_get_fileshares 是一个预定义的函数,它调用 GET API 来获取 uuid 列表。另外,我正在使用 bash 3

nodes=($(hydra_get_fileshares | jq --raw-output '.values[].id'))
for d in "${nodes[@]}"; do
    ARRAY=( "d:${d}")
done

虽然我会直接用 while read 循环和 ProSub.

解析你命令的输出
#!/usr/bin/env bash

while IFS= read -r d; do
  array+=("d:$d")
done < <(hydra_get_fileshares | jq --raw-output '.values[].id')

带有数组赋值的 += 是一项工作 around/solution,在任何人甚至可以说 mapfile 又名 readarray 之前,它不是 bashv3 的一部分.

参数部分引用bash手册。

In the context where an assignment statement is assigning a value to a shell variable or array index, the += operator can be used to append to or add to the variable's previous value