json - 为什么在 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$
解决方案
如果状态名称足够简单,您可以添加一对额外的括号:
try=($(tm run ....))
(考虑在没有 -r 选项的情况下调用 jq。)
否则,您可以考虑使用readarray
, 或其他技术来初始化 bash 数组。
推荐阅读
- javascript - 如果它有另一个元素,如何用元素检查锚标签?
- c++ - 为什么即使我使用了 clean 和 sync 方法,我也不能使用 std::cin 两次?
- angular - 生成命令需要在 Angular 项目中运行?
- logging - 您如何处理在代码中更深入地记录 HTTP 请求和输出跟踪和错误消息的不同任务?
- asp.net - 我的子报告在主报告的每个单元格中显示所有结果
- java - Postgresql 和 JDBC 检查元数据中的 TYPE ENUM
- python - 如何在没有任何排序功能的情况下按字母顺序对字符串数组进行排序?Python
- reactjs - Nginx - try_files:如何设置远程文件(url)?
- android - 尝试从我的适配器中的 onClick 事件中打开活动
- bash - 如何确定bash中的换行符?