使用 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
我有一个脚本,其中 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