【问题标题】:How to iterate over an array and use the values in a command in shell?如何遍历数组并在 shell 中使用命令中的值?
【发布时间】:2023-04-01 10:36:01
【问题描述】:

这里是菜鸟。我正在尝试使用 curl 调用 API 端点以获取(用户)列表,以便稍后在带有 while 循环的另一个后续 API 调用中使用。

卷曲请求:

  • users=$(curl https://localhost/users/)

当我回应响应时,这就是我得到的?

  • ["Jane","Joe","random","Person"]

如何遍历该数组中的所有用户,以便在后续 API 调用中使用它们?

Ps:我正在为此使用 shell :)

【问题讨论】:

  • 假设 curl 的结果实际上是一个数组,你可以使用this guide。您可以通过运行显示实际结果的 curl 命令来进一步细化问题。

标签: api shell curl


【解决方案1】:

如何遍历该数组中的所有用户,以便在后续 API 调用中使用它们?

如果您安装了jq,您可以使用它从 JSON 数组中提取用户:

for user in `curl https://localhost/users/ | jq -r '.[]'`
do  echo $user
done

另一个变体,使用tr

for user in `curl https://localhost/users/ | tr '[",]' \ `
do  echo $user
done

【讨论】:

  • 不幸的是,jq 没有安装在那个盒子上,如果它最终会运行,我无法安装任何东西。
  • 我添加了一个没有jq的变体。
猜你喜欢
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
  • 2016-03-01
相关资源
最近更新 更多