首页 > 解决方案 > 为什么在 bash 的单个数组元素中获取 jq 的所有结果

问题描述

我试图在 bash 的数组中获取 jq 查询的所有结果,但它在第一个数组元素中给出了所有结果。你可以帮帮我吗?我想将每个结果都放在一个数组元素中

bash-4.2$ try=$(tm run jobs:status::get -s "tm=serverA&work=*&status=Failed" | $PATH_API/jq -r '.statuses[].name // empty')
bash-4.2$ echo $try
job_B job_C
bash-4.2$ echo "${#try[@]}"
1
bash-4.2$

标签: jsonbashjq

解决方案


如果状态名称足够简单,您可以添加一对额外的括号:

try=($(tm run ....))

(考虑在没有 -r 选项的情况下调用 jq。)

否则,您可以考虑使用readarray, 或其他技术来初始化 bash 数组。


推荐阅读