jqcurl 包含两个curl的输出

问题描述 投票:0回答:1

我使用curl得到这个答案:

curl -sX https://xx.com | jq -r '.res.out[].server // 空 | {主机:.host,描述:.description}'

{ "host": "server1",
  "description": "server 1"
}
{ "host": "server2",
  "description": "server 2"
}
{ "host": "server3",
  "description": "server 3"
}

我使用第二次卷曲来获取 server 的状态(如果它正在运行)。在第二次卷曲中,我需要主机名来获取在第一次卷曲中获得的服务器状态,并且我还想添加服务器的描述。

所以,我想将主机列表和描述存储在地图上,以便在第二次卷曲时使用

for host in ${array_host[@]}; do 
  echo "HOST: $host";
  echo "Description: $description"
  curl -sX https://xx.com/servers/$host | jq -r '.specInfo.resul.out[].server.operationalStatus //empty';
done

我希望有这样的想法

HOST: Server1
Description: Server 1
RUNNING
HOST: Server2
Description: Server 2
RUNNING
HOST: Server3
Description: Server 3
NOT RUNNING
arrays dictionary curl jq
1个回答
0
投票

没有更多的样本数据,很难测试,但这样的东西应该可以满足您的需求:

curl … |
jq -r '.res.out[].server | .host, .description' hostdesc.json |
while read -r host; read -r desc; do
  printf 'HOST: %s\nDescription: %s\n' "$host" "$desc"
  curl … | jq …
done
© www.soinside.com 2019 - 2024. All rights reserved.