gpt4 book ai didi

bash - 在 bash 中解析和存储 curl 命令的 json 输出

转载 作者:行者123 更新时间:2023-11-29 09:14:29 25 4
gpt4 key购买 nike

我有五个单独运行良好的 cURL 语句,我试图将它们放在一个 bash 脚本中。每个 cURL 语句都依赖于从在它之前执行的 cuRL 语句生成的变量。我试图找出最聪明的方法来解决这个问题。这是第一个 cURL 语句;

curl -i -k -b sessionid -X POST https://base/resource -H "Content-Type: application/json" -H "Authorization: Authorization: PS-Auth key=keyString; runas=userName; pwd=[password]" -d "{\"AssetName\":\"apiTest\",\"DnsName\":\"apiTest\",\"DomainName\":\"domainNameString\",\"IPAddress\":\"ipAddressHere\",\"AssetType\":\"apiTest\"}"

这很好用,它产生了这个输出;

{"WorkgroupID":1,"AssetID":57,"AssetName":"apiTest","AssetType":"apiTest","DnsName":"apiTest","DomainName":"domainNameString","IPAddress":"ipAddressHere","MacAddress":null,"OperatingSystem":null,"LastUpdateDate":"2017-10-30T15:18:05.67-07:00"}

但是,在下一个 cURL 语句中,我需要使用 AssetID 中的整数来执行它。简而言之,我如何获取 AssetID 值并将其存储到变量中以在下一条语句中使用?总共,我将使用 5 个 cURL 语句,它们依赖于在前面的语句中生成的值来执行。关于如何受到赞赏的任何见解。

最佳答案

下载并安装jq,它类似于用于JSON 数据的sed。您可以使用它来切片、过滤、映射和转换结构化数据,就像 sedawkgrep 处理非结构化数据一样轻松。请记住将 '...' 替换为您实际的 curl 参数

curl '...' | jq --raw-output '.AssetID'

并将其存储在变量中,使用命令替换语法来运行命令并返回结果。

asset_ID=$( curl '...' | jq --raw-output '.AssetID' )

curl命令中,去掉-i标志,只输出JSON数据,不带头信息。

关于bash - 在 bash 中解析和存储 curl 命令的 json 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47018863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com